Страницы: 1 2 След.
RSS
Пароль на открытие файлов средствами VBA
 
Ситуация: есть папка, куда выгружаются отчеты в формате xls. В целях разграничения доступа принято решение ставить пароль на документе. Из-за слабой защищенности пароля книги/листа, нужно сделать пароль на открытие.  
Вопрос: Возможно ли средствами VBA сделать пароль на открытие каждого найденного xls файла в папке?
 
{quote}{login=ZyXp10!t}{date=02.12.2008 10:49}{thema=Пароль на открытие файлов средствами VBA}{post}Ситуация: есть папка, куда выгружаются отчеты в формате xls. В целях разграничения доступа принято решение ставить пароль на документе. Из-за слабой защищенности пароля книги/листа, нужно сделать пароль на открытие.  
Вопрос: Возможно ли средствами VBA сделать пароль на открытие каждого найденного xls файла в папке?{/post}{/quote}  
Я сделал так, точнее мне помогли форумчане за что им поклон ... книга вызывает большую форму куда и вводится пароль войти невозможно испытано на себе...  
В модуль эта книга..  
Private Sub Workbook_Open()  
UserForm5.Show  
End Sub  
Код формы..  
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)  
If KeyCode = 13 Then  
   If TextBox1.Text = "24" Then  
      ThisWorkbook.IsAddin = False  
      Unload UserForm5  
   Else  
       TextBox1.Value = ""  
   End If  
End If  
 
End Sub  
Пароль 24
 
Спасибо, но вариант с макросом не подходит, т.к. легко обходится (достаточно удалить пароль миф и потом изменить пароль)  
Мне необходимо именно поставить пароль на открытие, чтобы взломать можно было только брутом...
 
миф = vba (пунто заменил, собака :)  
 
Вопрос остается в силе...
 
А чем вас не устраивает встроенная установка пароля на открытие файла? Она-то как раз только брутом и ломается... Пароль установите на все книги вручную или перебирая макросом.
 
{quote}{login=ZyXp10!t}{date=02.12.2008 11:16}{thema=}{post}Спасибо, но вариант с макросом не подходит, т.к. легко обходится (достаточно удалить пароль миф и потом изменить пароль)  
Мне необходимо именно поставить пароль на открытие, чтобы взломать можно было только брутом...{/post}{/quote}  
Ну если пользователи владеют МИФ -ами  то да, но вы сами попробуйте работает эффективно...
 
{quote}{login=Влад}{date=02.12.2008 11:41}{thema=}{post}А чем вас не устраивает встроенная установка пароля на открытие файла? Она-то как раз только брутом и ломается... Пароль установите на все книги вручную или перебирая макросом.{/post}{/quote}  
Вот как раз это и нужно :)  
Перебором найти все xls файлы в папке и установить на каждый из наих пароль на открытие...  
Подскажите пжл код макроса...
 
{quote}{login=Микки}{date=02.12.2008 11:43}{thema=Re: }{post}{quote}{login=ZyXp10!t}{date=02.12.2008 11:16}{thema=}{post}Спасибо, но вариант с макросом не подходит, т.к. легко обходится (достаточно удалить пароль миф и потом изменить пароль)  
Мне необходимо именно поставить пароль на открытие, чтобы взломать можно было только брутом...{/post}{/quote}  
Ну если пользователи владеют МИФ -ами  то да, но вы сами попробуйте работает эффективно...{/post}{/quote}  
Даже если не владеют, найдутся чудаки на букву м, которые "слямзят" файл и откроют, а там конфиденциальная инфа, поэтому вопрос именно в установке пароля на открытие...
 
Макрос на перебор файлов легко найдете в Поиске. Смысл таков - последовательно открываете каждую найденную книгу, используете свойство .Password = "нужный_пароль", закрываете книгу с сохранением изменений .Close (True).
 
Про перебор всех файлов в папке говорилось неоднократно.  
А вот что выдал макрорекордер при установке пароля на открытие:  
ActiveWorkbook.Password = "Password"
Bite my shiny metal ass!      
 
{quote}{login=Влад}{date=02.12.2008 11:57}{thema=}{post}Макрос на перебор файлов легко найдете в Поиске. Смысл таков - последовательно открываете каждую найденную книгу, используете свойство .Password = "нужный_пароль", закрываете книгу с сохранением изменений .Close (True).{/post}{/quote}  
Свойство .Password насколько мне известно относится только к защите книги/листов паролем, а каков синтаксис установки пароля на открытие???
 
{quote}{login=ZyXp10!t}{date=02.12.2008 12:00}{thema=Re: }{post}{quote}{login=Влад}{date=02.12.2008 11:57}{thema=}{post}Макрос на перебор файлов легко найдете в Поиске. Смысл таков - последовательно открываете каждую найденную книгу, используете свойство .Password = "нужный_пароль", закрываете книгу с сохранением изменений .Close (True).{/post}{/quote}  
Свойство .Password насколько мне известно относится только к защите книги/листов паролем, а каков синтаксис установки пароля на открытие???{/post}{/quote}Пользуйтесь макрорекордером!
Bite my shiny metal ass!      
 
{quote}{login=Лузер™}{date=02.12.2008 11:59}{thema=}{post}Про перебор всех файлов в папке говорилось неоднократно.  
А вот что выдал макрорекордер при установке пароля на открытие:  
ActiveWorkbook.Password = "Password"{/post}{/quote}  
Для текущего документа такое работает, но как реализовать установку пароля именно в найденных документах???
 
Это и есть пароль на открытие - вы сами попробуйте.
 
{quote}{login=ZyXp10!t}{date=02.12.2008 12:02}{thema=Re: }{post}{quote}{login=Лузер™}{date=02.12.2008 11:59}{thema=}{post}Про перебор всех файлов в папке говорилось неоднократно.  
А вот что выдал макрорекордер при установке пароля на открытие:  
ActiveWorkbook.Password = "Password"{/post}{/quote}  
Для текущего документа такое работает, но как реализовать установку пароля именно в найденных документах???{/post}{/quote}  
Очевидно, к каждой найденой книге применить свойство .Password (НЕ к ActiveWorkbook) - я вам уже вроде объяснил постом выше.
 
{quote}{login=Влад}{date=02.12.2008 11:57}{thema=}{post}Макрос на перебор файлов легко найдете в Поиске. Смысл таков - последовательно открываете каждую найденную книгу, используете свойство .Password = "нужный_пароль", закрываете книгу с сохранением изменений .Close (True).{/post}{/quote}  
Спасибо за "смысл", но я в ВБА новичок и слабо понимаю о чем идет речь. Если возможно, распишите подробнее...
 
Хотя и видно, что Вы читаете все ответы, но видно в суть не вдаетесь.  
Вам Влад описал процесс:  
поочередно открываете книги.  
после открытия книга становится ActiveWorkbook  
закрываете и сохраняете книгу ActiveWorkbook.Close (True)
Bite my shiny metal ass!      
 
{quote}{login=Лузер™}{date=02.12.2008 12:06}{thema=}{post}Хотя и видно, что Вы читаете все ответы, но видно в суть не вдаетесь.  
Вам Влад описал процесс:  
поочередно открываете книги.  
после открытия книга становится ActiveWorkbook  
закрываете и сохраняете книгу ActiveWorkbook.Close (True){/post}{/quote}  
У меня инет "медленный", вы пишите, я отвечаю на пост, а в это время еще появляется пост и т.д. и  т.п :)))  
Повторюсь, я в ВБА новичок, распишите, если возможно, "смысл" подробнее, а лучше конечно, приведите код (на коде учиться всегда легче :)))
 
Реализовать "смысл" при текущем уровне знаний vba я не в илах, поэтому прошу  
дать конкретный код, который бы перебором находил все xls файлы и ставил в них пароль на открытие...
 
посмотрите пример (на всякий случай пароль "123")
 
{quote}{login=Артем}{date=02.12.2008 01:38}{thema=}{post}посмотрите пример (на всякий случай пароль "123"){/post}{/quote}  
Вываливается здесь: Workbooks.Open Filename:=iFile.Name (Runtime-Error 1004) (пишет, что не может найти файл)  
P.S. Спасибо за пример
 
это в моем же примере или вы куда-то файлы скопировали?
 
{quote}{login=Артем}{date=02.12.2008 02:09}{thema=}{post}это в моем же примере или вы куда-то файлы скопировали?{/post}{/quote}  
В вашем, я просто "копии" переименовал в 01, 02 ... 04.xls и все - больше ничего не делал
 
странно, у меня все работает...  
попробуйте вставиь перед  
Workbooks.Open Filename:=iFile.Name    
строчку    
cells(1,1) = iFile.Name    
после запуска в ячейке A1 должен появиться адрес, напишите, что получилось
 
{quote}{login=Артем}{date=02.12.2008 02:28}{thema=}{post}странно, у меня все работает...  
попробуйте вставиь перед  
Workbooks.Open Filename:=iFile.Name    
строчку    
cells(1,1) = iFile.Name    
после запуска в ячейке A1 должен появиться адрес, напишите, что получилось{/post}{/quote}  
Копия (2) макро.xls (для ваших файлов), т.е. первый найденный файл xls в папке
 
кажись дошло....  
замените проблемную строку на  
Workbooks.Open Filename:=iPath & Application.PathSeparator & iFile.Name  
хотя у меня и первоначальный вариант работает(пожимает плечами)...
 
{quote}{login=Артем}{date=02.12.2008 03:09}{thema=}{post}кажись дошло....  
замените проблемную строку на  
Workbooks.Open Filename:=iPath & Application.PathSeparator & iFile.Name  
хотя у меня и первоначальный вариант работает(пожимает плечами)...{/post}{/quote}  
ВСЕ ПРЕКРАСНО РАБОТАЕТ! СПАСИБО ОГРОМНОЕ!  
Буду учить VBA... Кстати не посоветуете хорошие книги по VBA в бесплатном доступе
 
пожалуйста  
хорошая эл.библиотека http://www.infanata.org/: регистрируетесь и поиск по ключевому слову VBA (Уокенбах точно есть, на первое время вам хватит)
 
{quote}{login=Артем}{date=02.12.2008 03:21}{thema=}{post}пожалуйста  
хорошая эл.библиотека http://www.infanata.org/: регистрируетесь и поиск по ключевому слову VBA (Уокенбах точно есть, на первое время вам хватит){/post}{/quote}  
Спасибо, кстати оффтопный прикол: оказывается я уже был зареган на инфанате, а я и не знал :)))
 
{quote}{login=ZyXp10!t}{date=02.12.2008 11:16}{thema=}{post}Спасибо, но вариант с макросом не подходит, т.к. легко обходится (достаточно удалить пароль миф и потом изменить пароль)  
Мне необходимо именно поставить пароль на открытие, чтобы взломать можно было только брутом...{/post}{/quote}  
не подскажите как это делается?
Страницы: 1 2 След.
Читают тему
Наверх