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

Вход

Регистрация

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

 

= Мир MS Excel/Проверка макросом даты на дни исключения - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Проверка макросом даты на дни исключения
aghient Дата: Вторник, 03.10.2017, 20:32 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Доброго времени суток, прошу помочь создать проверку даты на дни исключения из списка.
Чтобы, если дата в ячейке F3 будет равна дате из столбца O, то дата в ячейке F3 менялась на следующий день и снова происходила проверка, до тех пор пока не будет дата, которой нет в списке.
Например: в ячейке F3 стоит дата 07.01.2017, то при нажатии на кнопку происходит проверка по этому списку и если дата совпадает, то он добавляет к дате в ячейке F3 еще один день (08.01.2017) и опять проводит проверку, если день опять совпадает, то переводит дату ещё на один день вперед (09.01.2017).
К сообщению приложен файл: dats.xls (29.0 Kb)
 
Ответить
СообщениеДоброго времени суток, прошу помочь создать проверку даты на дни исключения из списка.
Чтобы, если дата в ячейке F3 будет равна дате из столбца O, то дата в ячейке F3 менялась на следующий день и снова происходила проверка, до тех пор пока не будет дата, которой нет в списке.
Например: в ячейке F3 стоит дата 07.01.2017, то при нажатии на кнопку происходит проверка по этому списку и если дата совпадает, то он добавляет к дате в ячейке F3 еще один день (08.01.2017) и опять проводит проверку, если день опять совпадает, то переводит дату ещё на один день вперед (09.01.2017).

Автор - aghient
Дата добавления - 03.10.2017 в 20:32
nilem Дата: Вторник, 03.10.2017, 22:02 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Здравствуйте
попробуйте так
[vba]
Код
Sub ttt()
Dim dt As Date, i&, x
dt = CStr(Range("F3").Value)

On Error Resume Next: Err.Clear
With WorksheetFunction
    x = .Transpose(Range("O3", Cells(Rows.Count, "O").End(xlUp)).Value)
    Do
        i = .Match(CStr(dt), x, 0)
        If Err Then Exit Do
        dt = dt + 1
    Loop
End With
Range("F3").Value = dt
End Sub
[/vba]


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеЗдравствуйте
попробуйте так
[vba]
Код
Sub ttt()
Dim dt As Date, i&, x
dt = CStr(Range("F3").Value)

On Error Resume Next: Err.Clear
With WorksheetFunction
    x = .Transpose(Range("O3", Cells(Rows.Count, "O").End(xlUp)).Value)
    Do
        i = .Match(CStr(dt), x, 0)
        If Err Then Exit Do
        dt = dt + 1
    Loop
End With
Range("F3").Value = dt
End Sub
[/vba]

Автор - nilem
Дата добавления - 03.10.2017 в 22:02
aghient Дата: Вторник, 03.10.2017, 22:06 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
nilem, да, работает, спасибо огромнейшее за труд.
 
Ответить
Сообщениеnilem, да, работает, спасибо огромнейшее за труд.

Автор - aghient
Дата добавления - 03.10.2017 в 22:06
KuklP Дата: Среда, 04.10.2017, 07:09 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Попаразитировал на коде Николая:
[vba]
Код
Sub ttt()
    Dim dt As Date, x, a
    dt = CStr(Range("F3").Value)
    x = Application.Transpose([O2].CurrentRegion.Value)
    Do
        a = Filter(x, dt)
        If UBound(a) >= 0 Then dt = dt + 1 Else Exit Do
    Loop
    Range("F3").Value = dt
End Sub
[/vba] B)


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеПопаразитировал на коде Николая:
[vba]
Код
Sub ttt()
    Dim dt As Date, x, a
    dt = CStr(Range("F3").Value)
    x = Application.Transpose([O2].CurrentRegion.Value)
    Do
        a = Filter(x, dt)
        If UBound(a) >= 0 Then dt = dt + 1 Else Exit Do
    Loop
    Range("F3").Value = dt
End Sub
[/vba] B)

Автор - KuklP
Дата добавления - 04.10.2017 в 07:09
_Boroda_ Дата: Среда, 04.10.2017, 09:47 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 17006
Репутация: 6667 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Еще формульный вариант
[vba]
Код
Sub tt()
    With Range("F3")
        d_ = CLng(.Value)
        .FormulaArray = "=" & d_ & "+MATCH(1=1,ISNA(MATCH(" & d_ & "+ROW(R1:R20),R3C15:R25C15,)),)"
        .Value = .Value
    End With
End Sub
[/vba]
Вот такой формулой
Код
=ПОИСКПОЗ(1=1;ЕНД(ПОИСКПОЗ(F3+СТРОКА($1:$20);$O$3:$O$25;));)
К сообщению приложен файл: dats_1.xls (42.5 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЕще формульный вариант
[vba]
Код
Sub tt()
    With Range("F3")
        d_ = CLng(.Value)
        .FormulaArray = "=" & d_ & "+MATCH(1=1,ISNA(MATCH(" & d_ & "+ROW(R1:R20),R3C15:R25C15,)),)"
        .Value = .Value
    End With
End Sub
[/vba]
Вот такой формулой
Код
=ПОИСКПОЗ(1=1;ЕНД(ПОИСКПОЗ(F3+СТРОКА($1:$20);$O$3:$O$25;));)

Автор - _Boroda_
Дата добавления - 04.10.2017 в 09:47
  • Страница 1 из 1
  • 1
Поиск:

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