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

Вход

Регистрация

Напомнить пароль

 

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

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

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

[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:=True

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

этот скрипт открывает и обновляет эксели. Но на каждом экселе в свойствах подключения , далее в строке подключения убран пароль и снята галочка сохранить пароль, это сделано для того, чтобы никакой другой пользователь не обновлял эти эксели, кроме одного человека. Но т.к. экселей много, нужно придумать, чтобы это делал скрипт на 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:=True

'Шаг 4: Следующий файл в папке
MyFiles = Dir
Loop
End 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
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2563
Репутация: 706 ±
Замечаний: 0% ±

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


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

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

Может кому пригодится
[vba]
Код

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]
 
Ответить
СообщениеМожет кому пригодится
[vba]
Код

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]

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

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