Страницы: 1
RSS
[ Закрыто ] Проверить в папке наличие 3-х pdf-файлов, если их нет - создать.
 
Всем доброго времени суток.
Сразу извиняюсь за размытое название темы и за два вопроса в одной теме.

Можно ли сделать подобное?
1) Допустим, имеет какие-то текстовые данные в А1 = буква "А", А2 = "Б", А3 = "В". Нажимаем на кнопку, привязанную к макросу, который создает папку с названием "А Б В" и в ней уже несколько пустых pdf файлов с определенными названиями (каждый раз одинаковые) - например 1.pdf, 2.pdf, 3.pdf.

2) При нажатии на кнопку с другим макросом, Excel проверяет указанную директорию (скорей всего где-то на сетевом диске) и там где созданные файлы 1.pdf, 2.pdf, 3.pdf имеют размер 0 kb (ну или как-то по другому идентифицировать, что эти файлы созданы макросом) определенные ячейки окрашивать цветом.

Если это реально, то как? Хотя бы примерно. (или что гуглить?)
Заранее спасибо.
 
Цитата
autograph написал:
Сразу извиняюсь за размытое название темы
Извинения приняты )) Предложите адекватное название, из которого будет понятна проблема - модераторы поменяют.

Цитата
autograph написал:
два вопроса в одной теме.
А что об этом написано в правилах? Отредактируйте свой пост и оставьте один вопрос. Для второго - отдельная тема.
 
в VBA и не такое реально.
это один вопрос и один макрос, который проверяет наличие а Папке А В С файлов 1.pdf, 2.pdf, 3.pdf
если их нет создает
название темы:
проверить в папке наличие 3-х pdf-файлов, если их нет - создать
Изменено: Ігор Гончаренко - 01.09.2019 21:49:08
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Юрий М написал:
Для второго - отдельная тема.
Ок. Так и сделаю. Спасибо.

Цитата
Ігор Гончаренко написал:
это один вопрос и один макрос, который проверяет наличие а Папке А В С файлов 1.pdf, 2.pdf, 3.pdfесли их нет создает
Не подскажите, как это примерно выглядит в коде? (Или что гуглить?)
Ситуация :
Занёс информацию в A1, A2, A3. Например "Иванов", "Москва", "2019". И где нибудь на листе есть кнопка с макросом, выделил "Иванов", "Москва", "2019", нажал на кнопку и в сети, в определенном месте, создалась папка "Иванов Москва 2019", а внутри этой папки гарантировано создались два пустых файла, допустим "паспорт.pdf" и "снилс.pdf".
Потом сотрудник, который будет получать сканы документов, будет сохранять вручную в папку "Иванов Москва 2019" с заменой текущих "нулёвых" файлов.
Удобно и быстро. Не нужно переименовывать, а просто кликнуть на существующий файл, а потом сохранить с заменой.
 
Цитата
autograph написал:
в определенном месте
звучит хорошо, но с точки зрения программирования  СОВЕРШЕННО НЕ ОПРЕДЕЛЕННО
Цитата
autograph написал:
Или что гуглить?
гуглите "VBA для чайников"
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Если быть точным, то нужно вот так:

1) Выделяем две ячейки, допустим A1 и B1. (текст допустим "Москва" (А1) и "Иванов" (B2))
2) Нажимаем на кнопку с макросом.
3) Макрос должен создать папку в S:/folder с названием "Москва - Иванов".
4) И также создать внутри этой папки "Москва - Иванов" два файла Паспорт.pdf и СНИЛС.pdf (само собой 0kb, пустые)
5) Если в папке S:/folder уже есть папка "Москва - Иванов", то появляется окно с текстом "Ошибка".

Люди, помогите :)
 
autograph, Тут не люди, в большей части, а коты и звери :-)
Можно уточнить смысл создания файлов с расширением PDF, но без содержания?
https://www.script-coding.com/WSH/FileSystemObject.html#3.1. и прочие методы позволят оперировать тем что вам нужно в файловой системе.
По вопросам из тем форума, личку не читаю.
 
Код
Declare Function SHCreateDirectoryEx Lib "shell32" Alias "SHCreateDirectoryExA" _
                                     (ByVal hwnd As Long, ByVal pszPath As String, _
                                      ByVal psa As Any) As Long
'Самый простой способ решения проблемы - использование WinAPI-функции SHCreateDirectoryEx,
'которая может создать все нужные папки и подпапки за один запуск.

Sub CreateFolderWithSubfolders(ByVal ПутьСоздаваемойПапки$)
' функция получает в качестве параметра путь к папке
' если такой папки ещё нет - она создаётся
' может создаваться сразу несколько подпапок
    If Len(Dir(ПутьСоздаваемойПапки$, vbDirectory)) = 0 Then    ' если папка отсутствует
        SHCreateDirectoryEx Application.hwnd, ПутьСоздаваемойПапки$, ByVal 0&    ' создаём путь
    End If
End Sub

Sub qq()
    Dim iPath$
    iPath = "D:\" & [a1] & " " & [b1] & " " & [c1]
    Call CreateFolderWithSubfolders(iPath)
    With CreateObject("Scripting.FileSystemObject")
        .CreateTextFile iPath & "\Паспорт.pdf"
        .CreateTextFile iPath & "\СНИЛС.pdf"
    End With
End Sub
 
Цитата
RAN написал:
Код
Огромное спасибо. Но не совсем понял, а название папки будет браться из активных ячеек?

Цитата
БМВ написал:
Можно уточнить смысл создания файлов с расширением PDF, но без содержания?
Чтобы во-первых - задать чёткую структура тех документов (в том числе и их наименование), которые должны быть в каждой папке. Грубо говоря, чтобы не было, "Паспорт_1", "Иванов_паспорта", "ПАСПОРТА-ИВАНОВ" и т.д...
Во-вторых - так удобней сохранять ) ctrl+s из почты, переходим в нужную директорию, клацаем на лежащий там нулёвый файл, и нажимаем "сохранить". Файд перезаписывается.
В третьих - Мне подсказали, как написать макрос, чтобы велась проверка этих файлов. Если весит 0 кб, то ячейка окрашивается в цвет, если больше "0", то не окрашивается.

Сплошная польза ))
 
Цитата
autograph написал:
ctrl+s из почты, переходим в нужную директорию, клацаем на лежащий там нулёвый файл
ну с этим я согласен на половину, клацнуть не туда и сохранить не то в этом случае проще, а ведь придется в любом случае подтвердить перезапись.
По вопросам из тем форума, личку не читаю.
 
Цитата
autograph написал:
название папки будет браться из активных ячеек?
В Excel их количество весьма ограничено, и постоянно - 1 штука.
А название папки берется из
Цитата
autograph написал:
1) Допустим, имеет какие-то текстовые данные в А1
и т.д.
Звиняйте, я ваше "допустим" развернул из столбца в строку.
Изменено: RAN - 04.09.2019 20:40:43
 
Цитата
БМВ написал:
ну с этим я согласен на половину, клацнуть не туда и сохранить не то в этом случае проще, а ведь придется в любом случае подтвердить перезапись.
Это да. Но тут уж человеческий фактор. Только если по рукам бить ))

Цитата
RAN написал:
В Excel их количество весьма ограничено, и постоянно - 1 штука.
А если с двумя активными?

Условия, которые я написал выше (и сейчас чуть конкретизировал) :
1) Выделяем две ячейки, допустим A1 и B1. (текст допустим "Москва" (А1) и "Иванов" (B2))
2) Нажимаем на кнопку с макросом. (здесь можно вставить диалоговое окно с вопросом "точно создаем папку?" да\нет )
3) Если да, то макрос должен создать папку в S:/folder с суммой текста активных ячеек, разделяемых минусом, примерно вот так "Москва - Иванов". (А1+В2)


Так можно, с двумя активными ячейками? Поможете?
 
Цитата
autograph написал:
А если с двумя активными?
Не бывает две. Две выделенных бывает, а активная всегда одна.
 
Предложный вариант не работает. Видимо я что-то делаю не так или вовсе не корректно передал смысл задачи.

Кто сможет помочь?

Смысл задачи следующий:
1) Выделяем две ячейки, A1 и B1. (текст в них, допустим - "Москва" в ячейке А1 и "Иванов" в ячейке B1)
2) Нажимаем на кнопку привязанную к макросу.
3) Макрос начинает работу с вопроса "точно создаем папку?" да\нет.
4)  Если нажимаем да, то макрос должен проверить наличие папки с названием из активной ячейки (А1+В1). Если такой нет, то создать папку с названием из активной ячейки (А1+В1) в S:/folder (этот путь - константа). То есть получится должно примерно вот такое S:/folder/Москва - Иванов/
Если такая папка уже есть, то к названию новой добавить например "_2". То есть в итоге получится должно примерно вот так S:/folder/Москва - Иванов_2/
5) После создания папки "Москва - Иванов" в ней должны быть созданы автоматически два файла Паспорт.pdf и СНИЛС.pdf (само собой 0kb, пустые)
Название файлов тоже константа, они всегда будут одинаковые.

И всё это должно быть в одном макросе. Как быть? Может быть SHCreateDirectoryEx не лучший вариант для данной задачи?
Помогите пожалуйста.
 
Цитата
autograph написал:
Видимо я что-то делаю не так
Из всего, что вы делаете, видно одно - плодите темы на форуме.
Страницы: 1
Наверх