есть папка в которой 306 пустых папок с названиями: (1) (2) (3) ... (305) (306) (вот так и называются номера в скобках от 1 до 306) В эти папки люди кладут всякие сканы, доки и т.д.
Есть Excel файл со списком вопросов 306 вопросов, соответственно есть столбец А с нумерацией этих вопросов.
Возможноли закрасить зеленом ячейки (a, n) где n - номер папки, в которой есть хоть какие-то файлы? То есть если, например, в папке (17) есть какой-то файл, в эксель файле в столбце А ячейка с номером 17 должна окраситься в зеленый.
а да, в эксель файле в столбце АК есть гиперссылка на каждую папку, может можно назначит какую-то команду чтобы эксель вытаскивал в столбец АL названия файлов которые есть в папке или название первого файла или еще что угодно чтобы было понятно что в папке что-то есть?
Да такое можно сделать макросом. Если вы не сможете под себя адаптировать макрос, то рекомендую добавить пример с вашей структурой данных. Нужно буквально 2 строки.
а в чем помощь-то должна заключаться? Написать за Вас код с нуля? Вы бы тогда к файлу какое-то более подробное пояснение приложили, а не просто выложили файл, без малейшего намека где там что и куда смотреть. Допустим, надо определять по папке, путь к которой записан в столбец АК, только непонятно - там окончательный путь к папке или надо еще чего подставлять. Но раз так нужна помощь - вот код с основным алгоритмом:
Код
Sub FindEmptyFolders()
Dim fso As Object, fld As Object
Dim lr&, llastr&, s$, smainpath$, spath$
Set fso = CreateObject("Scripting.FileSystemObject")
'если нужен путь к папке, в которой эти самые папки, а в АК только имя файла
'smainpath = "C:\"
'ищем последнюю заполненную ячейку в столбце AK
llastr = Cells(Rows.Count, "AK").End(xlUp).Row
'цикл по всем ячейкам столбца
On Error Resume Next
For lr = 2 To llastr
s = Cells(lr, "AK").Value
If s <> "" Then
'если в столбец только имя файла
'spath = smainpath & s
spath = s
'проверяем наличие папки
Set fld = Nothing
Set fld = fso.GetFolder(s)
If Not fld Is Nothing Then
'если в папке нет файлов
If fld.Files.Count = 0 Then
Cells(lr, "AK").Interior.Color = vbRed
End If
End If
End If
Next
End Sub
останется только правильно определить где что смотреть.
Дмитрий(The_Prist) Щербаков, Спасибо Дмитрий, да вы правы я наврядли смогу даже написанный код заставить работать. Я вам в личку напишу если не против?
зачем? Личное обращение подразумевает решение Вашей задачи именно в личном порядке, а не в качестве помощи на форуме. И это будет уже не бесплатно. Решать за "так" задачи каждого в личном порядке не входит в мои приоритеты.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...