Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Проверка существования файла в папке. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Проверка существования файла в папке.
DKR Дата: Среда, 28.12.2022, 14:08 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Добрый день.
Помогите пожалуйста, неожиданно понадобилась следующая функция.

В столбике А находятся номера (формат общий, но скорее всего будет текст). В папке "C:\\DOC" находятся файлы с расширением pdf, с такими же названиями, как в столбике А.

Мне нужно, что бы макрос проверял по названиям наличие файлов в папке и если находил, то в столбике Б (напротив названия из столбика А) писал "Есть" и закрашивал ячейку зелёным цветом, если не нашёл файл, то писал "Нет" и закрашивал красным цветом.

Пример:

А Б

23565896 Есть
23578963 Нет
13547765 Нет
65656566 Есть

Очень буду ждать Вашей помощи.


Сообщение отредактировал DKR - Среда, 28.12.2022, 14:09
 
Ответить
СообщениеДобрый день.
Помогите пожалуйста, неожиданно понадобилась следующая функция.

В столбике А находятся номера (формат общий, но скорее всего будет текст). В папке "C:\\DOC" находятся файлы с расширением pdf, с такими же названиями, как в столбике А.

Мне нужно, что бы макрос проверял по названиям наличие файлов в папке и если находил, то в столбике Б (напротив названия из столбика А) писал "Есть" и закрашивал ячейку зелёным цветом, если не нашёл файл, то писал "Нет" и закрашивал красным цветом.

Пример:

А Б

23565896 Есть
23578963 Нет
13547765 Нет
65656566 Есть

Очень буду ждать Вашей помощи.

Автор - DKR
Дата добавления - 28.12.2022 в 14:08
Nic70y Дата: Среда, 28.12.2022, 15:03 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 9005
Репутация: 2369 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Function FileYesNo(a As Range)
    If Dir("C:\\DOC\" & a & ".pdf") = "" Then
        FileYesNo = "Нет"
    Else
        FileYesNo = "Есть"
    End If
End Function
[/vba]апдэйт: я конечно же не дочитал
[vba]
Код
Sub u_700()
    Application.ScreenUpdating = False
    u = "C:\\DOC\"
    v = Cells(Rows.Count, "a").End(xlUp).Row
    For Each w In Range("a1:a" & v)
        If Dir(u & w & ".pdf") = "" Then
            w.Offset(0, 1) = "Нет"
            w.Offset(0, 1).Interior.Color = 255
        Else
            w.Offset(0, 1) = "Есть"
            w.Offset(0, 1).Interior.Color = 5296274
        End If
    Next
    Application.ScreenUpdating = True
End Sub
[/vba]
К сообщению приложен файл: 5363220.xlsm (19.8 Kb)


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Среда, 28.12.2022, 15:21
 
Ответить
Сообщение[vba]
Код
Function FileYesNo(a As Range)
    If Dir("C:\\DOC\" & a & ".pdf") = "" Then
        FileYesNo = "Нет"
    Else
        FileYesNo = "Есть"
    End If
End Function
[/vba]апдэйт: я конечно же не дочитал
[vba]
Код
Sub u_700()
    Application.ScreenUpdating = False
    u = "C:\\DOC\"
    v = Cells(Rows.Count, "a").End(xlUp).Row
    For Each w In Range("a1:a" & v)
        If Dir(u & w & ".pdf") = "" Then
            w.Offset(0, 1) = "Нет"
            w.Offset(0, 1).Interior.Color = 255
        Else
            w.Offset(0, 1) = "Есть"
            w.Offset(0, 1).Interior.Color = 5296274
        End If
    Next
    Application.ScreenUpdating = True
End Sub
[/vba]

Автор - Nic70y
Дата добавления - 28.12.2022 в 15:03
DKR Дата: Среда, 28.12.2022, 15:48 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Гениально! Спасибо Вам огромное. Столько время и нервов мне сэкономили.
Раз уж я тут, есть ещё маленький вопрос :)
Ничего сложного, может уже ест где то в темах.

Например в столбике А попадается одинаковый текст. Можно сделать так, что бы ячейки с одинаковым текстом перекрашивались в красный, автоматически, без кнопки, допустим после каждого ввода происходила проверка ?

Пример
А
132356
165416
132356

Это бы мне тоже очень помогло:)
 
Ответить
СообщениеГениально! Спасибо Вам огромное. Столько время и нервов мне сэкономили.
Раз уж я тут, есть ещё маленький вопрос :)
Ничего сложного, может уже ест где то в темах.

Например в столбике А попадается одинаковый текст. Можно сделать так, что бы ячейки с одинаковым текстом перекрашивались в красный, автоматически, без кнопки, допустим после каждого ввода происходила проверка ?

Пример
А
132356
165416
132356

Это бы мне тоже очень помогло:)

Автор - DKR
Дата добавления - 28.12.2022 в 15:48
_Boroda_ Дата: Среда, 28.12.2022, 15:56 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16714
Репутация: 6503 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Это называется Условное форматирование
Главная - УФ - Правила выделения ячейки - Повторяющиеся значения
Только не делайте УФ на весь столбец сразу. С запасом - да, но не сильно много, а то подвисать будет

Добавлено
Что-то я прозевал. В правилах что написано? Один вопрос - одна тема. В следующий раз новые вопросы в новых темах задавайте
К сообщению приложен файл: 5199036.xlsm (8.1 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЭто называется Условное форматирование
Главная - УФ - Правила выделения ячейки - Повторяющиеся значения
Только не делайте УФ на весь столбец сразу. С запасом - да, но не сильно много, а то подвисать будет

Добавлено
Что-то я прозевал. В правилах что написано? Один вопрос - одна тема. В следующий раз новые вопросы в новых темах задавайте

Автор - _Boroda_
Дата добавления - 28.12.2022 в 15:56
Nic70y Дата: Среда, 28.12.2022, 16:06 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 9005
Репутация: 2369 ±
Замечаний: 0% ±

Excel 2010
в модуль листа[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    u = Target.Column
    If u = 1 Then
        a = Target.Value
        b = Target.Row
        c = Application.Match(a, Range("a1:a" & b - 1))
        If IsNumeric(c) Then Target.Interior.Color = 255
    End If
End Sub
[/vba]апдэйт: опять не дочитал. в этот раз сооб. выше
К сообщению приложен файл: 99.xlsm (21.3 Kb)


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Среда, 28.12.2022, 16:07
 
Ответить
Сообщениев модуль листа[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    u = Target.Column
    If u = 1 Then
        a = Target.Value
        b = Target.Row
        c = Application.Match(a, Range("a1:a" & b - 1))
        If IsNumeric(c) Then Target.Interior.Color = 255
    End If
End Sub
[/vba]апдэйт: опять не дочитал. в этот раз сооб. выше

Автор - Nic70y
Дата добавления - 28.12.2022 в 16:06
DKR Дата: Среда, 28.12.2022, 16:17 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Что-то я прозевал. В правилах что написано? Один вопрос - одна тема. В следующий раз новые вопросы в новых темах задавайте


Я знал, просто подумал, что вопрос незначительный, мелкий и не заслуживает новой темы.
Но я учту, такого больше не повторится.
Спасибо Вам за Ответ


Сообщение отредактировал DKR - Среда, 28.12.2022, 16:29
 
Ответить
Сообщение
Что-то я прозевал. В правилах что написано? Один вопрос - одна тема. В следующий раз новые вопросы в новых темах задавайте


Я знал, просто подумал, что вопрос незначительный, мелкий и не заслуживает новой темы.
Но я учту, такого больше не повторится.
Спасибо Вам за Ответ

Автор - DKR
Дата добавления - 28.12.2022 в 16:17
Serge_007 Дата: Среда, 28.12.2022, 16:22 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
вопрос незначительный, мелкий и не заслуживает новой темы
О значительности вопросов что-то написано в правилах?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
вопрос незначительный, мелкий и не заслуживает новой темы
О значительности вопросов что-то написано в правилах?

Автор - Serge_007
Дата добавления - 28.12.2022 в 16:22
DKR Дата: Среда, 28.12.2022, 16:26 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

в модуль листа


Супер! Спасибо. Завтра вернусь и нажму на поблагодарить, а то только один раз в 24 часа)


Сообщение отредактировал DKR - Среда, 28.12.2022, 16:29
 
Ответить
Сообщение
в модуль листа


Супер! Спасибо. Завтра вернусь и нажму на поблагодарить, а то только один раз в 24 часа)

Автор - DKR
Дата добавления - 28.12.2022 в 16:26
DKR Дата: Суббота, 14.01.2023, 14:01 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

апдэйт: опять не дочитал. в этот раз сооб. выше


Здравствуйте.
Столкнулась с проблемой.

Скрипт показывает результат только до определённой строки. И в каждом файле по разному, иногда не доходит 133 до самого конца со значениями в столбике иногда 33. Я пыталась указать как пример range a1:a50000 выдаёт ошибку.
Файлы имеют по 50 тыс. строк. Как сделать, что бы скрипт точно доходил до конца?
 
Ответить
Сообщение
апдэйт: опять не дочитал. в этот раз сооб. выше


Здравствуйте.
Столкнулась с проблемой.

Скрипт показывает результат только до определённой строки. И в каждом файле по разному, иногда не доходит 133 до самого конца со значениями в столбике иногда 33. Я пыталась указать как пример range a1:a50000 выдаёт ошибку.
Файлы имеют по 50 тыс. строк. Как сделать, что бы скрипт точно доходил до конца?

Автор - DKR
Дата добавления - 14.01.2023 в 14:01
DKR Дата: Суббота, 14.01.2023, 14:10 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Решила. Извиняясь. Моя ошибка :facepalm: :shy:


Сообщение отредактировал DKR - Суббота, 14.01.2023, 14:11
 
Ответить
СообщениеРешила. Извиняясь. Моя ошибка :facepalm: :shy:

Автор - DKR
Дата добавления - 14.01.2023 в 14:10
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!