Страницы: 1
RSS
Автоматический ввод пароля, Как реализовать автоматический ввод пароля
 
Добрый день! Прошу помочь в решении проблемы.
В общем ситуация такова, что в компании принято паролить все документы эксель. Документов много всяких разных но пароль на всех один и тот же. Вот и приходится каждый раз при открытии того или иного файла вводить этот злосчастный пароль.
Пробовал прописать пароль через событие workbooks_open, но естественно это не прокатило, поскольку само событие возникает уже после ввода пароля.
Пробовал workbooks_open прописать в надстройку (и активировав ее в параметры excel - надстройки). Как полагал эксель сначала откроет надстройку, увидит событие open и будет применять это для открываемого файла, но тоже в итоге не получилось. Прошу помочь!!!))))  
Изменено: Дмитрий Дмитрий - 01.04.2024 14:52:02
 
Дмитрий Дмитрий,
как вариант, можно сделать скрипт через VBS или сделать отдельный excel файл с макросом
Изменено: evgeniygeo - 01.04.2024 15:01:16
 
Это не похоже на ваш случай - https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=150706&...
?
 
Цитата
написал:
Это не похоже на ваш случай -  https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=150706&... ?
Примерно так я и хотел, но у чела там жестко прописан путь к файлу с паролем у меня же таких файлов много и к каждому не пропишешь путь. Как назначить переменной путь к открываемому файлу в момент запуска надстройки я не могу найти.
Если бы было известно как то дальше элементарно Application.Workbooks.open а там уже и путь и пароль.

Цитата
написал:
Дмитрий Дмитрий , как вариант, можно сделать скрипт через VBS или сделать отдельный excel файл с макросом
Нет опыта по скриптам, можно подробнее?
 
Дмитрий Дмитрий,
vbs:
Код
Option Explicit
Dim WshShell, objXL, objWorkbook, fileIn, obj, objArgs

Set obj = WScript.CreateObject("WScript.Shell")
Set objArgs = WScript.Arguments
fileIn = objArgs(0)
' Открытие файла
Set objXL = CreateObject("Excel.Application")
objXL.Visible = TRUE
Set objWorkbook = objXL.Workbooks.Open(filein,,,,"12345") 

если запускать с параметром полное имя файла, открывает его. Что бы так не извращаться можно ассоциировать xls файлы с этим скриптом, но тут с наскока не решил, поэтому пришлось еще bat файлик  прикручивать
Код
c:\tools\xlsopenpswd.vbs %1%
 
А еще можно просто макрос написать с показом диалога открытия файла. Выбираем файл и все - там уже через Workbooks.Open прописываем пароль.
Т.е. по факту все сведется к нажатию кнопки и указания файла для открытия.
Код
Sub ShowGetOpenDialod()
    Dim avFiles
    'по умолчанию к выбору доступны файлы Excel(xls,xlsx,xlsm,xlsb)
    avFiles = Application.GetOpenFilename _
                ("Excel files(*.xls*),*.xls*", 1, "Выбрать Excel файлы", , False)
    If VarType(avFiles) = vbBoolean Then
        'была нажата кнопка отмены - выход из процедуры
        Exit Sub
    End If
    Workbooks.Open avFiles, Password:="1234"
End Sub
При желании можно сразу несколько файлов так открыть. Здесь все расписано: Диалоговое окно выбора файлов/папки
Изменено: Дмитрий(The_Prist) Щербаков - 01.04.2024 17:02:47
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
написал:
КодOption Explicit
Dim WshShell, objXL, objWorkbook, fileIn, obj, objArgs

Set obj = WScript.CreateObject("WScript.Shell")
Set objArgs = WScript.Arguments
fileIn = objArgs(0)
' Открытие файла
Set objXL = CreateObject("Excel.Application")
objXL.Visible = TRUE
Set objWorkbook = objXL.Workbooks.Open(filein,,,,"12345")
Что то интересное!!! )) Правда это колдунство у меня не заработало, ошибка в строке 6 символ 1 ))
Индекс выходит за пределы допустимого диапазона
Изменено: Дмитрий Дмитрий - 01.04.2024 17:41:39
 
bigorq, что может быть?)
 
Цитата
Дмитрий Дмитрий написал:
что может быть?)
вы не задали параметр - путь\имя xls  файла
 
bigorq, вариант отличный. А как можно этот путь получать автоматически? Ну допустим при открытии любого файла эксель будет запускаться этот скрипт, проверять запаролен файл или нет, если есть пароль то предпринимать попытку открытия файла паролем ну и так далее?
 
Цитата
Дмитрий Дмитрий написал:
этот путь получать автоматически?
я же писал выше, создаём cmd файл, например XLSOPPSW,CMD пишем в него строку,
Цитата
bigorq написал:
c:\tools\xlsopenpswd.vbs %1%
, в которой прописан путь и имя нашего vbs файла. Затем кликаем на любом xls файле правой кнопкой, выбираем в контекстном меню Открыть с помощью, находим наш XLSOPPSW,CMD (галку открывать всегда этим приложением снимаем) кликаем по нему левой кнопкой. Экран мелькнет и откроется excel и выбранный файл. В дальнейшем в контекстном меню Открыть с помощью должен уже быть пункт с XLSOPPSW,CMD для xls  файлов.
Цитата
Дмитрий Дмитрий написал:
проверять запаролен файл или нет
по первоначальному посту у вас все файлы запаролены, зачем проверки. Мне не на чем попробовать скрипт, если им открывать незапароленный файл, вываливается в ошибку?
 
bigorq, потрясающе )) это работает  8)  спасибо большое
Страницы: 1
Наверх