Напоминалка о ближайшей дате
alex116
Дата: Пятница, 23.10.2015, 08:15 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Добрый день! Пытаюсь сделать чтобы при открытии листа появлялось всплывающее окно(напоминалка) о ближайшей дате из указанного диапазона. В моём примере это столбцы 6 и(или)7. Но почему-то работает криво. Помогите разобраться.
Добрый день! Пытаюсь сделать чтобы при открытии листа появлялось всплывающее окно(напоминалка) о ближайшей дате из указанного диапазона. В моём примере это столбцы 6 и(или)7. Но почему-то работает криво. Помогите разобраться. alex116
Ответить
Сообщение Добрый день! Пытаюсь сделать чтобы при открытии листа появлялось всплывающее окно(напоминалка) о ближайшей дате из указанного диапазона. В моём примере это столбцы 6 и(или)7. Но почему-то работает криво. Помогите разобраться. Автор - alex116 Дата добавления - 23.10.2015 в 08:15
Nic70y
Дата: Пятница, 23.10.2015, 08:35 |
Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 9131
Репутация:
2415
±
Замечаний:
0% ±
Excel 2010
alex116 , а в чем кривизна? вариант с формулой массиваКод
=МИН(ЕСЛИ(R[-1]C[-4]:R[15]C[-3]>=СЕГОДНЯ();R[-1]C[-4]:R[15]C[-3]))-СЕГОДНЯ()
alex116 , а в чем кривизна? вариант с формулой массиваКод
=МИН(ЕСЛИ(R[-1]C[-4]:R[15]C[-3]>=СЕГОДНЯ();R[-1]C[-4]:R[15]C[-3]))-СЕГОДНЯ()
Nic70y
ЮMoney 41001841029809
Ответить
Сообщение alex116 , а в чем кривизна? вариант с формулой массиваКод
=МИН(ЕСЛИ(R[-1]C[-4]:R[15]C[-3]>=СЕГОДНЯ();R[-1]C[-4]:R[15]C[-3]))-СЕГОДНЯ()
Автор - Nic70y Дата добавления - 23.10.2015 в 08:35
alex116
Дата: Пятница, 23.10.2015, 08:45 |
Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Nic70y , Кривизна в том что в моём примере макрос выбирает не ближайшую дату а первую в списке. Спасибо за ответ.
Nic70y , Кривизна в том что в моём примере макрос выбирает не ближайшую дату а первую в списке. Спасибо за ответ.alex116
Сообщение отредактировал alex116 - Пятница, 23.10.2015, 08:48
Ответить
Сообщение Nic70y , Кривизна в том что в моём примере макрос выбирает не ближайшую дату а первую в списке. Спасибо за ответ.Автор - alex116 Дата добавления - 23.10.2015 в 08:45
Nic70y
Дата: Пятница, 23.10.2015, 08:48 |
Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 9131
Репутация:
2415
±
Замечаний:
0% ±
Excel 2010
Ну а мой вариант с формулой и макросом в модуле листа не подходит? в принципе можно и без макроса.
Ну а мой вариант с формулой и макросом в модуле листа не подходит? в принципе можно и без макроса. Nic70y
ЮMoney 41001841029809
Сообщение отредактировал Nic70y - Пятница, 23.10.2015, 08:48
Ответить
Сообщение Ну а мой вариант с формулой и макросом в модуле листа не подходит? в принципе можно и без макроса. Автор - Nic70y Дата добавления - 23.10.2015 в 08:48
alex116
Дата: Пятница, 23.10.2015, 08:50 |
Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Nic70y , Ваш вариант рабочий но почему без формулы не работает?
Nic70y , Ваш вариант рабочий но почему без формулы не работает?alex116
Ответить
Сообщение Nic70y , Ваш вариант рабочий но почему без формулы не работает?Автор - alex116 Дата добавления - 23.10.2015 в 08:50
Nic70y
Дата: Пятница, 23.10.2015, 08:54 |
Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 9131
Репутация:
2415
±
Замечаний:
0% ±
Excel 2010
Ну, да. мой вариант - это формула. могу придумать какой-то цикл, но это не гламурно, подождем vba'шников
Ну, да. мой вариант - это формула. могу придумать какой-то цикл, но это не гламурно, подождем vba'шников Nic70y
ЮMoney 41001841029809
Ответить
Сообщение Ну, да. мой вариант - это формула. могу придумать какой-то цикл, но это не гламурно, подождем vba'шников Автор - Nic70y Дата добавления - 23.10.2015 в 08:54
SLAVICK
Дата: Пятница, 23.10.2015, 09:46 |
Сообщение № 7
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация:
766
±
Замечаний:
0% ±
2019
могу придумать какой-то цикл, но это не гламурно,
Ну тогда решение с негламурным циклом : [vba]Код
Private Sub test() Dim d&, i&, n&, Dn&, D6&, D7&, mR As Range d = 100000 n = ActiveSheet.UsedRange.Rows.Count Dn = Now() For i = 2 To n If IsDate(Cells(i, 6)) Then D6 = Cells(i, 6) If D6 >= Dn And D6 - Dn < d Then d = D6 - Dn: Set mR = Cells(i, 6) End If If IsDate(Cells(i, 7)) Then D7 = Cells(i, 7) If D7 >= Dn And D7 - Dn < d Then d = D7 - Dn: Set mR = Cells(i, 7) End If Next If d > 0 Then MsgBox "Ближайшая дата:" & vbCr & mR.Value & vbCr & "Наступит через " & d & " дня/ей" If d = 0 Then MsgBox "Ближайшая дата - сегодня" & mR.Value mR.Select End Sub
[/vba]
могу придумать какой-то цикл, но это не гламурно,
Ну тогда решение с негламурным циклом : [vba]Код
Private Sub test() Dim d&, i&, n&, Dn&, D6&, D7&, mR As Range d = 100000 n = ActiveSheet.UsedRange.Rows.Count Dn = Now() For i = 2 To n If IsDate(Cells(i, 6)) Then D6 = Cells(i, 6) If D6 >= Dn And D6 - Dn < d Then d = D6 - Dn: Set mR = Cells(i, 6) End If If IsDate(Cells(i, 7)) Then D7 = Cells(i, 7) If D7 >= Dn And D7 - Dn < d Then d = D7 - Dn: Set mR = Cells(i, 7) End If Next If d > 0 Then MsgBox "Ближайшая дата:" & vbCr & mR.Value & vbCr & "Наступит через " & d & " дня/ей" If d = 0 Then MsgBox "Ближайшая дата - сегодня" & mR.Value mR.Select End Sub
[/vba]SLAVICK
Иногда все проще чем кажется с первого взгляда.
Ответить
Сообщение могу придумать какой-то цикл, но это не гламурно,
Ну тогда решение с негламурным циклом : [vba]Код
Private Sub test() Dim d&, i&, n&, Dn&, D6&, D7&, mR As Range d = 100000 n = ActiveSheet.UsedRange.Rows.Count Dn = Now() For i = 2 To n If IsDate(Cells(i, 6)) Then D6 = Cells(i, 6) If D6 >= Dn And D6 - Dn < d Then d = D6 - Dn: Set mR = Cells(i, 6) End If If IsDate(Cells(i, 7)) Then D7 = Cells(i, 7) If D7 >= Dn And D7 - Dn < d Then d = D7 - Dn: Set mR = Cells(i, 7) End If Next If d > 0 Then MsgBox "Ближайшая дата:" & vbCr & mR.Value & vbCr & "Наступит через " & d & " дня/ей" If d = 0 Then MsgBox "Ближайшая дата - сегодня" & mR.Value mR.Select End Sub
[/vba]Автор - SLAVICK Дата добавления - 23.10.2015 в 09:46
alex116
Дата: Пятница, 23.10.2015, 10:13 |
Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
SLAVICK , Всё работает. Спасибо. Всех с наступающим Днем автомобилиста)!!! Правда при первом открытии книги выскакивает это
SLAVICK , Всё работает. Спасибо. Всех с наступающим Днем автомобилиста)!!! Правда при первом открытии книги выскакивает этоalex116
Сообщение отредактировал alex116 - Пятница, 23.10.2015, 11:21
Ответить
Сообщение SLAVICK , Всё работает. Спасибо. Всех с наступающим Днем автомобилиста)!!! Правда при первом открытии книги выскакивает этоАвтор - alex116 Дата добавления - 23.10.2015 в 10:13