Страницы: 1
RSS
Сравнение числа с несколькими промежутками и вывод даты
 
Уважаемые друзья!  
Мне необходимо сделать следующую штуку:  
В ячейку А2 вбивается произвольная дата. В ячейку B2 вбивается число. Это число сравнивается с 7-ю диапазонами чисел, на основании этого сравнения в ячейку D2 записывается дата A2+ определенное количество дней (Если подходит под первый диапазон, то +5 дней, если второй, то +10 дней и т.п.)  
Есть некоторая наработка с текущей датой:  
 
Код:  
Sub SDD(ByVal Target As Range)  
Application.EnableEvents = False  
Dim A As Integer  
A = Range("A2")  
Dat = Now()  
If A > 10 And A < 20 Then Dat = Now() + 10  
If A > 20 And A < 30 Then Dat = Now() + 30  
Range("B2").Value = Format(Dat, "Short Date")  
Application.EnableEvents = True  
End Sub  
Только вот почему то не выводит дату в ячейку B2. То бишь не работает что-то...    
 
Буду примного и искренне благодарен за любую помощь!  
 
упд: Эксель 2007 если вдруг что.  
упд2: мне показалось, что макрос должен быть не таким сложным, хотя может стоит и какими то функциями тупо воспользоваться, не знаю...
 
{quote}{login=agoriachev}{date=03.03.2010 12:58}{thema=Сравнение числа с несколькими промежутками и вывод даты}{post}/...хотя может стоит и какими то функциями тупо воспользоваться, не знаю...{/post}{/quote}  
Стоит. Но сначала тупо почитать правила и показать пример.
 
{quote}{login=vikttur}{date=03.03.2010 01:02}{thema=Re: Сравнение числа с несколькими промежутками и вывод даты}{post}{quote}{login=agoriachev}{date=03.03.2010 12:58}{thema=Сравнение числа с несколькими промежутками и вывод даты}{post}/...хотя может стоит и какими то функциями тупо воспользоваться, не знаю...{/post}{/quote}  
Стоит. Но сначала тупо почитать правила и показать пример.{/post}{/quote}  
Дико извиняюсь.    
Прилагаю пример.  
В примере ячейке с начальной датой присваивается дата текущая, мне бы хотелось дату туда вводить, ток я не знаю как.
 
Говорите, правила прочитали?  
http://www.planetaexcel.ru/forum.php?thread_id=8735
 
Вы мне что-то пытаетесь сказать, но я не могу понять, что именно?  
Может имеет смысл вместо ссылки на правила форума, которые я - да - читал, указать пункт или выдержку из правил? Может стоит допустить, что я где-то что-то проглядел?    
Спасибо за понимание.
 
Не у всех .xlsm
 
Пример в .xls  
Спасибо.
 
Так Вы подменили модуль - нужно в модуле листа использовать событие Worksheet_Change.
 
{quote}{login=Юрий М}{date=03.03.2010 06:52}{thema=}{post}Так Вы подменили модуль - нужно в модуле листа использовать событие Worksheet_Change.{/post}{/quote}  
Поменял. Все равно не работает. Ввожу число, а дата не появляется.
 
Ввёл в А2 число, в В2 появляется сегодняшняя дата. Что первично? Что отслеживаться должно? Поясните задумку :-)
 
См. пример. В коде не нашёл упоминания про ячейку D2. Работает с В2. Может ошиблись в вопросе?
 
Скорее всего неправильно. Вы писали про произвольную дату, а в коде всегда фигурирует текущая дата.
 
{quote}{login=Юрий М}{date=03.03.2010 07:59}{thema=}{post}Ввёл в А2 число, в В2 появляется сегодняшняя дата. Что первично? Что отслеживаться должно? Поясните задумку :-){/post}{/quote}  
Черт, почему у вас сработало, а у меня нет?)))    
{quote}{login=Юрий М}{date=03.03.2010 07:59}{thema=}{post}См. пример. В коде не нашёл упоминания про ячейку D2. Работает с В2. Может ошиблись в вопросе?Скорее всего неправильно. Вы писали про произвольную дату, а в коде всегда фигурирует текущая дата.{/post}{/quote}  
В коде нет произвольной даты, там действительно только текущая - это наработка, я хочу изменить, но не знаю как сделать так, чтобы можно было вводить число, а не брать текущее.    
 
И как теперь в вашем примере открыть сам код?)) Я путаюсь в этом 2007 экселе, ппц.
 
Черт, редактировать свой коммент нельзя.  
Я похоже понял какой Worksheet_change имелся ввиду ранее)))    
В выпадающем меню.    
Теперь осталось только сделать ввод даты, а не брать текущую.
 
В идеале, конечно, было бы так:  
Три ячейки и одна кнопочка.  
В первую ячейку вводится произвольная дата.  
Во вторую ячейку вводится число.  
Нажимается кнопочка, которая запускает макрос.  
Макрос сравнивает введенное число по тем диапазонам, что есть в примере.  
На основании сравнения к произвольной дате добавляется определенное количество дней.
 
Так? Без кнопочки.
 
А как он работает? Куда вводить произвольную дату и где будет отображаться дата с учетом сравнения чисел и прибавления дней?
 
Дату вводим в В2, а при изменении значения в А2 происходит пересчёт.
 
У вас работает? У меня нет...
 
У меня работает. Может нужно оставлять дату в В2 неизменную, а изменяемую отображать в другой ячейке? Вроде так задумывалось? Но в коде я ничего подобного не нашёл.
 
Юрий, спасибо вам большое за внимание и уделенное время)  
Боюсь, что макрос все же будет сложноват для меня.    
Разберусь ка лучше я с функцией ЕСЛИ.    
Меньше крови будет ))
 
Так и не понял до конца задачу. Сравнение даты с какито набором массивов дат (или чисел). Создайте этот массив и функция ВПР Вам в помощь. Если трудно самому, нарисуйте не пример-заготовку, а желаемый результат ("хочу вот так").
Страницы: 1
Читают тему
Наверх