Страницы: 1
RSS
Макрос открытия файла pdf из подпапки по совпадению части названия файла
 
Ох, братцы, доброе утро! Давненько я не тревожил своими "первоклассными" почему да как.())
Надеюсь, что и в очередной раз не откажете в помощи старому неучу.

В-общем, вот какая "беда" у меня, уж расцвело, а я всё никак не могу сварганить работающую процедуру под свои нужды. Честное пионерское я гугл замучал!))
Значит есть на диске D файл(книга) BAZA.xlsm в папке "ШТАТКА", в этой папке есть подпапка(подкаталог)  "Личные карточки", в которой лежат файлы в формате .pdf и в их названиях в обязательном порядке присутствует НОМЕР этих самых карточек. ДАЛЕЕ, на титульном(первом) листе в книге BAZA по клику на кнопке открывается ФОРМА ввода данных, на этой форме есть текстбокс "№ карточки" (ну, учетная карточка). Местоположение всего этого добра(файлов) НЕ меняется независимо от компа или ноута, папка "ШТАТКА" всегда корне диска D.
Ну, вот хотелось бы присобачить на свою форму кнопку, на которую повесить бы макрос, КОТОРЫЙ по номеру карточки в текстбоксе, т.е. по ЧАСТИ имени файла,  открывал бы соответствующий этому номеру(совпадающий по номеру) файл .pdf (например, "Иванов Иван Иванович, 1452.pdf) из подпапки "Личные карточки".

Спасибо, что дочитали! Надеюсь смог по-человечески объяснить чего же я хотел-то?())
 
Если в базе есть и ФИО, то составить ThisWorkBook.Path&"\Личные карточки\"&"Иванов Иван Иванович, 1452.pdf" вроде не сложно. А далее, через Shell например, открыть нужный файл. Ну или сперва в папке ThisWorkBook.Path&"\Личные карточки\ искать "* 1452.pdf" через DIR или FileSystemObject И найдя опять открывать.
По вопросам из тем форума, личку не читаю.
 
Цитата
Эльбрус написал:
Ну, вот хотелось бы присобачить на свою форму кнопку
А я не понял: в чём вопрос? Форма у Вас - вот Вы и добавьте кнопку.
 
Юрий М, добрый день! Кнопку-то я, слава всем святым, научился таки прикреплять, у меня никак не получается сам макрос на открытие файла по указанному условию собрать.( Вот в чем вопрос был.
 
Желающих помочь с макросом всё ещё нет?((
 
Вам Михаил всё разжевал. Единственное добавлю, что ещё может понадобиться Instr.
Без примера никто не хочет писать. Потому что потом будет.
Братцы, помогите адаптировать макрос, я всё сделал как написали, а он не работает.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Alemox, втиснуть файл с юзерформой, с форматами и прочими причиндалами в требуемый объем, да ещё и со своим ПУТЁМ поиска нужной подпапки и нужного файла, мне показалось нереальным и не имеющим особого смысла, ведь я, вроде бы,  все необходимые для ТАКОГО макроса НЕИЗМЕНЯЕМЫЕ данные описал в своем первом посте.
Ну, на "нет" и суда нет.()
Изменено: Эльбрус - 18.05.2019 21:06:58
 
Ну тогда сделаю вырезку
Макрос для перебора всех PDF документов:
Код
Sub Файлы()
Dim abc As FileDialog
Dim a$, b$
Set abc = Application.FileDialog(msoFileDialogFolderPicker)
    abc.Title = "Выберите папку"
    abc.AllowMultiSelect = False
    abc.Show
    a = abc.SelectedItems(1) 
b = Dir(a & "\*.PDF")
Do While b <> "" 'До тех пор пока файлы "не закончатся"
Debug.Print b
    b = Dir 'Следующий файл
Loop
End Sub

Макрос для отбора файлов по части имени:
Код
Sub INSTR_1()
Dim Str$, FindChar$
Str = "Мама"
FindChar = "Ма"
MsgBox InStr(1, Str, FindChar, vbTextCompare)
End Sub

Макрос для открытия файла программой по умолчанию:
Код
Shell "explorer.exe C:\Users\Sano\Downloads\435345.PDF", vbNormalFocus

Вот как то так. Осталось склеить.
Изменено: Alemox - 18.05.2019 21:06:07
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Alemox, большущее спасибо за отклик! Пойду, посмотрю как всё это можно подогнать под мой вариант с частичным совпадением имени файла, которое указано в текстбоксе моей userform.
Страницы: 1
Наверх