Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2016, 13:51   #1
DEsh
Пользователь
 
Регистрация: 19.11.2009
Сообщений: 36
По умолчанию как вывести нужные ячейки при наступлении определеной даты

Добрый день!
Подскажите пожалуйста, как правильно поправить код:
Есть колонка с датой она вводится вручную, после нажатия клавиши выполнить условие - к введенным датам нужно прибавить 10 дней и если полученная дата будет < текущей даты то вывести ячейку в форму.

например:
1) 15.11.2016 + 10 дней = 25.11.2016 - вывести эту ячейку в форму так как полученная дата меньше текущей(29.11.2016).
2) 25.11.2016 + 10 дней = 05.12.2016 - пропустить ячейку так как полученная дата больше текущей(29.11.2016).

вот код который есть
Код:
Private Sub KillTheForm()
    Unload UserForm1
End Sub

Sub ShowPerson()
    Dim i As Long
    Dim d As Date
    
'   Проверка незаполненности свойства RowSource
    UserForm1.ListBox1.RowSource = ""
    
'   Добавление опций в объект ListBox
    
     For i = 1 To Sheets("Лист1").Cells(Rows.Count, 1).End(xlUp)
    If Format(Sheets("Лист1").Cells(i, 1), "d") = Format(Now(), "d") Then
      UserForm1.ListBox1.AddItem Sheets("Лист1").Cells(i, 2)
    End If
  Next
    'UserForm1.Show
End Sub

Sub KillFill()
' автофильтр
    ActiveSheet.Range("$A$1:$B$15000").AutoFilter Field:=1, Criteria1:= _
        xlFilterToday, Operator:=xlFilterDynamic
          Call KillTheForm
End Sub





Sub formuShow()
UserForm1.Show
End Sub
Вложения
Тип файла: xls 1111.xls (80.5 Кб, 20 просмотров)

Последний раз редактировалось DEsh; 29.11.2016 в 13:56.
DEsh вне форума Ответить с цитированием
Старый 29.11.2016, 14:00   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
If CDate(Sheets("Лист1").Cells(i, 1))+10 <= Now() Then 
UserForm1.ListBox1.AddItem Sheets("Лист1").Cells(i, 2) 
End If
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 29.11.2016, 14:23   #3
DEsh
Пользователь
 
Регистрация: 19.11.2009
Сообщений: 36
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Код:
If CDate(Sheets("Лист1").Cells(i, 1))+10 <= Now() Then 
UserForm1.ListBox1.AddItem Sheets("Лист1").Cells(i, 2) 
End If
к сожалению при проверке кода выдает ошибку в этой строке
Код:
 If CDate(Sheets("Лист1").Cells(i, 1))+10 <= Now() Then
я уже по всякому пробовал править((((
DEsh вне форума Ответить с цитированием
Старый 29.11.2016, 14:38   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

и так?
Код:
For i = 2 To Sheets("Лист1").Cells(Rows.Count, 1).End(xlUp).Row
        If CDate(Sheets("Лист1").Cells(i, 1)) + 10 <= Now() And Sheets("Лист1").Cells(i, 1) <> "" Then
            UserForm1.ListBox1.AddItem Sheets("Лист1").Cells(i, 2).Value
        End If
     Next
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 29.11.2016, 14:50   #5
DEsh
Пользователь
 
Регистрация: 19.11.2009
Сообщений: 36
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
и так?
Код:
For i = 2 To Sheets("Лист1").Cells(Rows.Count, 1).End(xlUp).Row
        If CDate(Sheets("Лист1").Cells(i, 1)) + 10 <= Now() And Sheets("Лист1").Cells(i, 1) <> "" Then
            UserForm1.ListBox1.AddItem Sheets("Лист1").Cells(i, 2).Value
        End If
     Next
А так не пробовал) все работает, спасибо!
DEsh вне форума Ответить с цитированием
Старый 29.11.2016, 15:09   #6
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Тут уж надо контролировать чтобы в А столбце или дата или пусто. Текст или числа вывалят макроса в ошибку.
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 29.11.2016, 15:31   #7
DEsh
Пользователь
 
Регистрация: 19.11.2009
Сообщений: 36
По умолчанию

а не подскажите как теперь отфильтровать полученный результат в excel?
Код:
Sub KillFill()
' автофильтр
    ActiveSheet.Range("$A$1:$B$15000").AutoFilter Field:=1, Criteria1:= _
        xlFilterToday, Operator:=xlFilterDynamic
          Call KillTheForm
End Sub
тут фильтрует по текущей дате, а как полученный результат отфильтровать опять туплю с правильным написанием
DEsh вне форума Ответить с цитированием
Старый 29.11.2016, 16:04   #8
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от DEsh Посмотреть сообщение
как теперь отфильтровать полученный результат в excel?
Код:
Sub KillFill()
' автофильтр
    Sheets("Лист1").Range("$A$1:$B$15000").AutoFilter Field:=1, Criteria1:= _
        "<=" & CLng(Date - 10)
          Call KillTheForm
End Sub
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 29.11.2016, 16:12   #9
DEsh
Пользователь
 
Регистрация: 19.11.2009
Сообщений: 36
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Код:
Sub KillFill()
' автофильтр
    Sheets("Лист1").Range("$A$1:$B$15000").AutoFilter Field:=1, Criteria1:= _
        "<=" & CLng(Date - 10)
          Call KillTheForm
End Sub
спасибо! какой я туповатый все же
DEsh вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести нужные данные из базы nikleb PHP 3 20.04.2012 22:28
Вывести данные первой ячейки столбца при выполнении условия kipish_lp Microsoft Office Excel 7 17.03.2010 14:44
Автоматизация заполнения даты и зависимость ячейки времени к ячейке даты. Каравай Microsoft Office Excel 14 11.03.2010 18:11
Запуск скрипта при наступлении даты xxxsas PHP 2 13.05.2009 13:07
Закраска ячейки при наступлении события liberty Microsoft Office Excel 22 23.07.2008 08:36