Страницы: 1
RSS
Закрасить ячейки в зависимости от того, заполнены определенные папки или они пустые
 
Всем доброго дня!

есть папка в которой 306 пустых папок с названиями: (1) (2) (3) ... (305) (306)  (вот так и называются номера в скобках от 1 до 306)
В эти папки люди кладут всякие сканы, доки и т.д.

Есть Excel файл со списком вопросов 306 вопросов, соответственно есть столбец А с нумерацией этих вопросов.

Возможноли закрасить зеленом ячейки (a, n) где n - номер папки, в которой есть хоть какие-то файлы? То есть если, например, в папке (17) есть какой-то файл, в эксель файле в столбце А ячейка с номером 17 должна окраситься в зеленый.

а да, в эксель файле в столбце АК есть гиперссылка на каждую папку, может можно назначит какую-то команду чтобы эксель вытаскивал в столбец АL  названия файлов которые есть в папке или название первого файла или еще что угодно чтобы было понятно что в папке что-то есть?
Изменено: gogy913 - 27.11.2020 13:21:46
 
Добрый день!

Да такое можно сделать макросом. Если вы не сможете под себя адаптировать макрос, то рекомендую добавить пример с вашей структурой данных. Нужно буквально 2 строки.
 
Вот такой у нас файл
 
всем доброго дня,

похоже никто не хочет мне помочь (((
Изменено: gogy913 - 01.12.2020 11:18:34
 
Цитата
gogy913 написал:
похоже никто не хочет мне помоч
а в чем помощь-то должна заключаться? Написать за Вас код с нуля? :) Вы бы тогда к файлу какое-то более подробное пояснение приложили, а не просто выложили файл, без малейшего намека где там что и куда смотреть. Допустим, надо определять по папке, путь к которой записан в столбец АК, только непонятно - там окончательный путь к папке или надо еще чего подставлять.
Но раз так нужна помощь - вот код с основным алгоритмом:
Код
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) Щербаков - 01.12.2020 11:38:06
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, Спасибо Дмитрий, да вы правы я наврядли смогу даже написанный код заставить работать. Я вам в личку напишу если не против?
 
Цитата
gogy913 написал:
Я вам в личку напишу
зачем? Личное обращение подразумевает решение Вашей задачи именно в личном порядке, а не в качестве помощи на форуме. И это будет уже не бесплатно. Решать за "так" задачи каждого в личном порядке не входит в мои приоритеты.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх