Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2013, 14:03   #1
Fordros
Пользователь
 
Регистрация: 26.06.2012
Сообщений: 89
По умолчанию Обновление файла Excel

Добрый день, форумчане!
Есть идея по обновлению файла, но как реализовать еще не придумал, может кто-то сталкивался и поможет советом или решением...
Работаю в сети где много точек, на которых по несколько пользователей, которые юзают "автоматизацию". При выявлении ошибок или каких-то недочетов или же при добавлении какого-то функционала я обычно высылаю файл (Автоматизация.xlsm) средствами почты (получателей около 300 чел) и файлы хоть обозначаю версией, для рядового юзера использовать последнюю версию является проблемой...
Думал включить проверку при открытии файла на номер версии и в случае несоответствия брать файлик (например лежит на серверном винте) и заменять текущий - новым, но вот как открытый файл заменить новым - хз?
Подскажите, пож-та, что можно придумать?

З.Ы. я не админ, поэтому установка стороннего ПО не является решением... =(
Fordros вне форума Ответить с цитированием
Старый 26.10.2013, 12:30   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Код в модуль книги,должно правильно сработать
Код:
Sub Замена()
    Dim wb1 As Workbook, wb2 As Workbook
    Dim Path As String, PathOrd As String
    Application.ScreenUpdating = False
    Set wb1 = ThisWorkbook
    Path = "Путь к файлу с новой версией"
    PathOrd = wb1.FullName
    On Error Resume Next
    Application.EnableCancelKey = xlDisabled
    Application.DisplayAlerts = False:
    wb1.ChangeFileAccess xlReadOnly
    Set wb2 = Workbooks.Open(Path)
    Kill PathOrd
    wb2.SaveAs (PathOrd)
    Application.DisplayAlerts = True
    ThisWorkbook.Close False
    Application.ScreenUpdating = True

End Sub

Private Sub Workbook_Open()
    If Проверка_Версии Then
        Замена
    End If
End Sub
Private Function Проверка_Версии() As Boolean
'Здесь ващ код

End Function
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 31.10.2013, 12:30   #3
Fordros
Пользователь
 
Регистрация: 26.06.2012
Сообщений: 89
По умолчанию

doober, Вы как всегда, на уровне !!! =)
Спасибо!
Fordros вне форума Ответить с цитированием
Старый 27.01.2019, 15:49   #4
Radomir-m
Новичок
Джуниор
 
Регистрация: 24.01.2013
Сообщений: 2
По умолчанию

Ребята, подскажите, как сделать если обновить надо не всю книгу, а только
выборочные листы?
Radomir-m вне форума Ответить с цитированием
Старый 27.01.2019, 16:45   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Ненужные листы удалить, открыть файл-образец, скопировать из него листы на место удалённых (с тем же именем), образец закрыть, книгу сохранить - всё это записывается рекордером.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обновление файла [Delphi7] -Jack- Общие вопросы Delphi 3 26.09.2012 22:03
Обновление связей Word/Excel Foxx Microsoft Office Excel 0 25.02.2012 12:32
Обновление листа excel -Anton- Microsoft Office Excel 3 05.09.2011 12:08