Страницы: 1
RSS
макрос вставки даты по 3 условиям.
 
Здравствуйте. Нужна помощь в написании макроса. Попробовал начать с помощью макрорекордера но чет не получилось. Задание описано во вложении.  
Желательно макрос в "эта книга" т.к. хочется чтоб макрос работал на нескольких листах.  
Заранее спасибо за внимание и помощь.
 
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)  
   If Intersect(Target, Range("B2:B500")) Is Nothing Then Exit Sub  
   Application.EnableEvents = 0  
   On Error Resume Next  
   Target.NumberFormat = "general"  
   If Len(Target) < 6 And Len(Target) > 0 Then  
       If InStr(1, Target, ".") Then  
           Target = DateValue(Target & "." & Year(Target(0)))  
       Else  
           Target = DateSerial(Year(Target(0)), Month(Target(0)), Target)  
       End If  
   ElseIf Len(Target) = 0 Then Target = Target(0)  
   End If  
   Target.NumberFormat = "dd/mm/yyyy"  
   Application.EnableEvents = -1  
End Sub
Я сам - дурнее всякого примера! ...
 
СпС. то что нужно. Только есть нюансы:  
1. созданную дату нельзя удалить кнопкой Delete.  
2. обязательно нужно заходить в редактор ячейки и потом жать TAB.  
Свой вариант пытался править для 1 условия и получилось также нужно было заходить в редактор, но если находясь в ячейку поставить пробел и перейти по TAB то дата вставлялась(не нужно было двойной клик по ячейке делать), в Вашем варианте такой способ не проскакивает.
 
ALT F8, выполнить Макрос1
 
{quote}{login=mar26}{date=01.02.2012 02:57}{thema=макрос вставки даты по 3 условиям}{post}ALT F8, выполнить Макрос1{/post}{/quote}  
хотелось бы чтоб макрос срабатывал автоматически при переходе из ячейки "В"(без лишних манипуляций руками).  
вставлял Ваш макрос в  Workbook_SheetChange и опять же при переходе из пустой ячейки стрелками или таб макрос не срабатывал, попытался через пробел перейти(1 раз нажать пробел проще чем двойной щелчок по ячейке) выдало "  .01.2012", а хотелось бы тоже число что в ячейке выше.
 
Сам подправил. :-)  
Тема закрыта.
Страницы: 1
Наверх