Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Потоковое паролирование документов .xls? на VBA 
:(
    Опции темы
kashemirny
Дата 5.7.2011, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 12.11.2007

Репутация: нет
Всего: нет



Добрый день! Прошу помочь с макросом Excel, который бы из отдельной книги каким-то образом мог перебрать определенную директорию на компьютере и потоково установил при этом пароль на все документы XLS директории. Идей увы нет.

Разве что такой вариант на одиночный открытый документ (так и то не работает):

Код

Sub Mac_pwd()
    ActiveWorkbook.SetPasswordEncryptionOptions PasswordEncryptionProvider:= "Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)", PasswordEncryptionAlgorithm:="RC4", PasswordEncryptionKeyLength:=128, PasswordEncryptionFileProperties:=True
         ActiveWorkbook.SaveAs FileFormat:= xlNormal, Password:="123", WriteResPassword:="", ReadOnlyRecommended:= False, CreateBackup:=False
        ActiveWorkbook.Save
End Sub

PM MAIL   Вверх
FINANSIST
Дата 8.7.2011, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Статус: Жив
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 11.4.2008
Где: Москва

Репутация: 13
Всего: 23



Лови
Код

Option Explicit

Sub Макрос1()

Dim obj As FileDialog: Dim xlsobj As Excel.Application: Dim xlsbook As Excel.Workbook
Dim objname As Variant: Dim str As String

Set obj = Application.FileDialog(msoFileDialogFilePicker)
With obj
.ButtonName = "Выбрать эти файлы"
.Title = "kashemirny, выдели файлы независимо от расширения"
.Show
End With

If obj.SelectedItems.Count = 0 Then
MsgBox "минимум один файл", vbCritical, "Finan$i$t//Message:"
    GoTo 20
End If
Set xlsobj = CreateObject("Excel.Application")
For Each objname In obj.SelectedItems
Let str = objname: Debug.Print str
If Right(str, 3) = "xls" Then
Set xlsbook = xlsobj.Workbooks.Open(str)
xlsbook.Password = "123"
xlsbook.Save
xlsbook.Close
End If


Next objname

20: On Error Resume Next
xlsbook.Close: Set obj = Nothing
Set xlsobj = Nothing: Set xlsbook = Nothing
End Sub




Это сообщение отредактировал(а) FINANSIST - 8.7.2011, 09:54


--------------------
“...Брали корову рыжую одну, отдавать будем корову рыжую одну, чтобы не нарушать отчетности”
Эдуард Успенский, “Каникулы в Простоквашино”
PM MAIL ICQ   Вверх
kashemirny
Дата 18.7.2011, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 12.11.2007

Репутация: нет
Всего: нет



FINANSIST
огромное спасибо за код! работает хорошо, но если обрабатываемый файл до этого был запарролирован происходит останов пакетной обработки и выскакивает ошибка. может сможешь помочь добавить в код проверку на то, установлен ли конкретный пароль (321) в файлах, и если установлен - меняем его на требуемый.
спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0444 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.