[font=Arial][color=black]Приветствую всех форумчан! Помогите в решении, пожалуйста! Есть большой (9000 поз) список оборудования. На каждое оборудование создана папка и ее номер указан в первой графе. Все папки на диске D:\Оборудование\*********, где ******** номер папки. Ячейка с номером папки имеет гиперссылку на свою папку. Необходим макрос позволяющий проверить наличие в папке документов размером более 200КБ и по итогам проверки окрашивающий ячейку красный при отсутствии или зеленый при наличии документов более указанного размера. Макрос будет запускаться вручную каждый день для проверки наполняемости папок (ежедневно дополняются папки документами). Сам создал макрос на ответ "да" или "нет", но он виснет и не дает результата и про цвет и размер не соображу. Поправьте меня пожалуйста!!! Код ниже и файл в приложении [vba]
Код
Sub Module5() Dim i&, pathf$ Dim strPos As String strPos = CActivCel pathf = "D:\Оборудование\" i_n& = Cells(Rows.Count, 1).End(xlUp).Row For i = 2 To i_n If Cells(i, 1) <> "" Then If dir(pathf & strPos & "\" & "*.*") <> "" Then Cells(i, 2) = "Да" Else Cells(i, 2) = "Нет"[font=Arial] End If End Sub
[/vba]
[font=Arial][color=black]Приветствую всех форумчан! Помогите в решении, пожалуйста! Есть большой (9000 поз) список оборудования. На каждое оборудование создана папка и ее номер указан в первой графе. Все папки на диске D:\Оборудование\*********, где ******** номер папки. Ячейка с номером папки имеет гиперссылку на свою папку. Необходим макрос позволяющий проверить наличие в папке документов размером более 200КБ и по итогам проверки окрашивающий ячейку красный при отсутствии или зеленый при наличии документов более указанного размера. Макрос будет запускаться вручную каждый день для проверки наполняемости папок (ежедневно дополняются папки документами). Сам создал макрос на ответ "да" или "нет", но он виснет и не дает результата и про цвет и размер не соображу. Поправьте меня пожалуйста!!! Код ниже и файл в приложении [vba]
Код
Sub Module5() Dim i&, pathf$ Dim strPos As String strPos = CActivCel pathf = "D:\Оборудование\" i_n& = Cells(Rows.Count, 1).End(xlUp).Row For i = 2 To i_n If Cells(i, 1) <> "" Then If dir(pathf & strPos & "\" & "*.*") <> "" Then Cells(i, 2) = "Да" Else Cells(i, 2) = "Нет"[font=Arial] End If End Sub
Manyasha, Добрый день! Выдает ошибку. В коде уже поправил If и закрыл Next. Попробовал еще так [vba]
Код
Sub Module5() Dim i&, pathf$ Dim strPos As String Dim strFileName As String strFileName = "12.pdf" pathf = "D:\Оборудование\" i_n& = Cells(Rows.Count, 1).End(xlUp).Row For i = 2 To i_n strPos = CActivCell If Cells(i, 1) <> "" Then If dir(pathf & strPos & "\" & strFileName) <> "" Then Cells(i, 2) = "ДА" Else Cells(i, 2) = "Нет" End If End If Next End Sub
[/vba] Результат тот же.
Manyasha, Добрый день! Выдает ошибку. В коде уже поправил If и закрыл Next. Попробовал еще так [vba]
Код
Sub Module5() Dim i&, pathf$ Dim strPos As String Dim strFileName As String strFileName = "12.pdf" pathf = "D:\Оборудование\" i_n& = Cells(Rows.Count, 1).End(xlUp).Row For i = 2 To i_n strPos = CActivCell If Cells(i, 1) <> "" Then If dir(pathf & strPos & "\" & strFileName) <> "" Then Cells(i, 2) = "ДА" Else Cells(i, 2) = "Нет" End If End If Next End Sub
Sub Module5() Dim i&, pathf$ Dim strPos As String Dim strFileName As String strFileName = "12.pdf" pathf = "D:\Оборудование\" i_n& = Cells(Rows.Count, 1).End(xlUp).Row For i = 2 To i_n 'strPos = CActivCell If Cells(i, 1) <> "" Then If Dir(pathf & Cells(i, 1) & "\" & strFileName) <> "" Then Cells(i, 2) = "ДА" Else Cells(i, 2) = "Нет" End If End If Next End Sub
[/vba] Не понятно что Вы хотели сказать строкой: [vba]
Код
strPos = CActivCell
[/vba]
Может так? [vba]
Код
Sub Module5() Dim i&, pathf$ Dim strPos As String Dim strFileName As String strFileName = "12.pdf" pathf = "D:\Оборудование\" i_n& = Cells(Rows.Count, 1).End(xlUp).Row For i = 2 To i_n 'strPos = CActivCell If Cells(i, 1) <> "" Then If Dir(pathf & Cells(i, 1) & "\" & strFileName) <> "" Then Cells(i, 2) = "ДА" Else Cells(i, 2) = "Нет" End If End If Next End Sub
[/vba] Не понятно что Вы хотели сказать строкой: [vba]
[/vba] даст ссылку на активную ячейку и из нее начнется макрос. Затупилллллл! Все заработало!!! Спасибо! Теперь бы как-то попробовать решить вопрос о проверки не просто наличия файлов в папке, а наличия в ней файлов размером свыше 300КБ. Получилось у меня покрасить ячейки в красный и зеленый цвет в зависимости от наполнения папки. Для интересующихся размещаю что получилось [vba]
Код
Sub Dim i&, pathf$ Dim strPos As String Dim strFileName As String strFileName = "*.*" pathf = "D:\Оборудование\" i_n& = Cells(Rows.Count, 1).End(xlUp).Row For i = 2 To i_n strPos = Cells(i, 1) If Cells(i, 1) <> "" Then If dir(pathf & strPos & "\" & strFileName) = "" Then Cells(i, 1).Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorAccent2 .TintAndShade = 0.599993896298105 .PatternTintAndShade = 0 End With Else Cells(i, 1).Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorAccent6 .TintAndShade = 0.599993896298105 .PatternTintAndShade = 0 End With End If End If Next End Sub
[/vba] Посоветуйте кто может - как проверить размер файла! Спасибо!
Спасибо! Сам дошел до [vba]
Код
strPos = Cells(i, 1)
[/vba] А предполагал, что [vba]
Код
strPos = CActivCell
[/vba] даст ссылку на активную ячейку и из нее начнется макрос. Затупилллллл! Все заработало!!! Спасибо! Теперь бы как-то попробовать решить вопрос о проверки не просто наличия файлов в папке, а наличия в ней файлов размером свыше 300КБ. Получилось у меня покрасить ячейки в красный и зеленый цвет в зависимости от наполнения папки. Для интересующихся размещаю что получилось [vba]
Код
Sub Dim i&, pathf$ Dim strPos As String Dim strFileName As String strFileName = "*.*" pathf = "D:\Оборудование\" i_n& = Cells(Rows.Count, 1).End(xlUp).Row For i = 2 To i_n strPos = Cells(i, 1) If Cells(i, 1) <> "" Then If dir(pathf & strPos & "\" & strFileName) = "" Then Cells(i, 1).Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorAccent2 .TintAndShade = 0.599993896298105 .PatternTintAndShade = 0 End With Else Cells(i, 1).Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorAccent6 .TintAndShade = 0.599993896298105 .PatternTintAndShade = 0 End With End If End If Next End Sub
[/vba] Посоветуйте кто может - как проверить размер файла! Спасибо! CDorian18092044