Версия для слабовидящих
Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

 

= Мир MS Excel/Автоматическое обновление всех эксель файлов в папке - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Автоматическое обновление всех эксель файлов в папке
Minia13 Дата: Среда, 22.09.2021, 11:58 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Добрый день.
Есть скрипт:


Sub OtkritVseKnigi()
'Шаг 1:Объявляем переменные
Dim MyFiles As String

'Шаг 2: Укажите нужную папку
MyFiles = Dir("C:\папка\*.xlsx")
Do While MyFiles <> ""

'Шаг 3: Открываем файлы один за другим
Workbooks.Open "C:\папка\" & MyFiles

'Код макроса с действиями
MsgBox ActiveWorkbook.Name
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
ActiveWorkbook.Close SaveChanges:=True

'Шаг 4: Следующий файл в папке
MyFiles = Dir
Loop
End Sub



этот скрипт открывает и обновляет эксели. Но на каждом экселе в свойствах подключения , далее в строке подключения убран пароль и снята галочка сохранить пароль, это сделано для того, чтобы никакой другой пользователь не обновлял эти эксели, кроме одного человека. Но т.к. экселей много, нужно придумать, чтобы это делал скрипт на VBA, как доработать скрипт чтобы он вставлял нужный пароль , обновлял ,потом убирал пароль и сохранял? И как доработать скрипт, если в одной книге , много листов с разными подключениями?
 
Ответить
СообщениеДобрый день.
Есть скрипт:

[vba]
Sub OtkritVseKnigi()'Шаг 1:Объявляем переменныеDim MyFiles As String'Шаг 2: Укажите нужную папкуMyFiles = Dir("C:\папка\*.xlsx")Do While MyFiles <> ""'Шаг 3: Открываем файлы один за другимWorkbooks.Open "C:\папка\" & MyFiles'Код макроса с действиями MsgBox ActiveWorkbook.Name Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False ActiveWorkbook.Close SaveChanges:=Тrue 'Шаг 4: Следующий файл в папкеMyFiles = DirLoopEnd Sub
[/vba]

этот скрипт открывает и обновляет эксели. Но на каждом экселе в свойствах подключения , далее в строке подключения убран пароль и снята галочка сохранить пароль, это сделано для того, чтобы никакой другой пользователь не обновлял эти эксели, кроме одного человека. Но т.к. экселей много, нужно придумать, чтобы это делал скрипт на VBA, как доработать скрипт чтобы он вставлял нужный пароль , обновлял ,потом убирал пароль и сохранял? И как доработать скрипт, если в одной книге , много листов с разными подключениями?

Автор - Minia13
Дата добавления - 22.09.2021 в 11:58
Minia13 Дата: Пятница, 24.09.2021, 15:36 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

тут есть кто живой?
 
Ответить
Сообщениетут есть кто живой?

Автор - Minia13
Дата добавления - 24.09.2021 в 15:36
Minia13 Дата: Понедельник, 27.09.2021, 18:07 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

А не подскажете как в VBA прописать весь connection string? ну т.е. я пропишу свой connection string и макрос будет брать его, вместо того что прописан в подключении.
 
Ответить
СообщениеА не подскажете как в VBA прописать весь connection string? ну т.е. я пропишу свой connection string и макрос будет брать его, вместо того что прописан в подключении.

Автор - Minia13
Дата добавления - 27.09.2021 в 18:07
gling Дата: Понедельник, 27.09.2021, 18:32 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2640
Репутация: 737 ±
Замечаний: 0% ±

2010
Цитата Minia13, 22.09.2021 в 11:58, в сообщении № 1 ( писал(а)):
как доработать скрипт чтобы он вставлял нужный пароль
Нужно создать список адресов с именем файлов и паролей к ним. После этого написать цикл который: откроит файл - снимет пароль - сделает изменения в файле - установит пароль - закроет файл. Как-то так, если коротко.
Для меня, проще написать новый макрос, чем переделывать чужой.


ЯД-41001506838083
 
Ответить
Сообщение
Цитата Minia13, 22.09.2021 в 11:58, в сообщении № 1 ( писал(а)):
как доработать скрипт чтобы он вставлял нужный пароль
Нужно создать список адресов с именем файлов и паролей к ним. После этого написать цикл который: откроит файл - снимет пароль - сделает изменения в файле - установит пароль - закроет файл. Как-то так, если коротко.
Для меня, проще написать новый макрос, чем переделывать чужой.

Автор - gling
Дата добавления - 27.09.2021 в 18:32
Minia13 Дата: Понедельник, 27.09.2021, 19:22 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Может кому пригодится


Sub OtkritVseKnigi()
'Шаг 1:Объявляем переменные
Dim MyFiles As String
Dim sn As String
Dim cn As WorkbookConnection
Dim ocn As OLEDBConnection

'Шаг 2: Укажите нужную папку
MyFiles = Dir("C:\папка\*.xlsx")
Do While MyFiles <> ""

'Шаг 3: Открываем файлы один за другим
Workbooks.Open "C:\папка\" & MyFiles

'Код макроса с действиями
ActiveWorkbook.Close SaveChanges:=True

For Each cn In ActiveWorkbook.Connections
Set ocn = cn.OLEDBConnection
sn = ocn.Connection
    With ocn
        .Connection = .Connection & ";Password=12345"
        .BackgroundQuery = False
        .Refresh
        .Connection = sn
    End With
Next

'Шаг 4: Следующий файл в папке
MyFiles = Dir
Loop
End Sub

 
Ответить
СообщениеМожет кому пригодится
[vba]
Sub OtkritVseKnigi()'Шаг 1:Объявляем переменныеDim MyFiles As StringDim sn As StringDim cn As WorkbookConnectionDim ocn As OLEDBConnection'Шаг 2: Укажите нужную папкуMyFiles = Dir("C:\папка\*.xlsx")Do While MyFiles <> ""'Шаг 3: Открываем файлы один за другимWorkbooks.Open "C:\папка\" & MyFiles'Код макроса с действиямиActiveWorkbook.Close SaveChanges:=ТrueFor Each cn In ActiveWorkbook.ConnectionsSet ocn = cn.OLEDBConnectionsn = ocn.Connection    With ocn        .Connection = .Connection & ";Password=12345"        .BackgroundQuery = False        .Refresh        .Connection = sn    End WithNext'Шаг 4: Следующий файл в папкеMyFiles = DirLoopEnd Sub
[/vba]

Автор - Minia13
Дата добавления - 27.09.2021 в 19:22
  • Страница 1 из 1
  • 1
Поиск:

Рейтинг@Mail.ru Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!