Здравствуйте. Избитая тема, но, помогите, пожалуйста, немного модифицировать (да, обращение к листу по Codename, если в чистой книге, то вместо Vvod_dannyh.Columns(3) тот же Worksheets(1). Columns(3)) Чтобы в соседнюю с датой ячейку (,-1) добавлялся (или удалялся, если дата отсутствует) номер недели основанный на дате, которую макрос добавляет. Номер недели, который если формулой
Код
=номнедели (ячейка;2)
И действие распространялось бы только с 5 строки, что вставка номера недели, что даты?
+ если в третьем столбе значение просто меняется, а не удаляется или вводится заново - то не трогать дату. Т.к. обычно в третьем столбце значение выбирается из раскрывающегося списка, и если вдруг его не удалять и новое выбрать - а просто заменить выбором нового из списка - то дата бы осталась прежняя?
Спасибо.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim rInt As Range, rCel As Range
Application.EnableEvents = False Application.ScreenUpdating = False Set rInt = Intersect(Target, Vvod_dannyh.Columns(3))
If Not rInt Is Nothing Then For Each rCel In rInt rCel.NumberFormat = "0" If rCel = Empty Then rCel.Offset(, -2) = Empty Else rCel.Offset(, -2) = Now() rCel.Offset(, -2).NumberFormat = "dd.mm.yyyy hh:mm:ss" End If Next End If
Set rInt = Nothing Application.EnableEvents = True Application.ScreenUpdating = True End Sub
[/vba]
Здравствуйте. Избитая тема, но, помогите, пожалуйста, немного модифицировать (да, обращение к листу по Codename, если в чистой книге, то вместо Vvod_dannyh.Columns(3) тот же Worksheets(1). Columns(3)) Чтобы в соседнюю с датой ячейку (,-1) добавлялся (или удалялся, если дата отсутствует) номер недели основанный на дате, которую макрос добавляет. Номер недели, который если формулой
Код
=номнедели (ячейка;2)
И действие распространялось бы только с 5 строки, что вставка номера недели, что даты?
+ если в третьем столбе значение просто меняется, а не удаляется или вводится заново - то не трогать дату. Т.к. обычно в третьем столбце значение выбирается из раскрывающегося списка, и если вдруг его не удалять и новое выбрать - а просто заменить выбором нового из списка - то дата бы осталась прежняя?
Спасибо.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim rInt As Range, rCel As Range
Application.EnableEvents = False Application.ScreenUpdating = False Set rInt = Intersect(Target, Vvod_dannyh.Columns(3))
If Not rInt Is Nothing Then For Each rCel In rInt rCel.NumberFormat = "0" If rCel = Empty Then rCel.Offset(, -2) = Empty Else rCel.Offset(, -2) = Now() rCel.Offset(, -2).NumberFormat = "dd.mm.yyyy hh:mm:ss" End If Next End If
Set rInt = Nothing Application.EnableEvents = True Application.ScreenUpdating = True End Sub
Private Sub Worksheet_Change(ByVal Target As Range) Dim rInt As Range, rCel As Range
Application.EnableEvents = False Application.ScreenUpdating = False Set rInt = Intersect(Target, Range("c5:c" & Rows.Count))
If Not rInt Is Nothing Then For Each rCel In rInt rCel.NumberFormat = "0" If rCel = Empty Then rCel.Offset(, -2).Resize(, 2) = Empty Else If rCel.Offset(, -2) = "" Then rCel.Offset(, -2) = Now() rCel.Offset(, -2).NumberFormat = "dd.mm.yyyy hh:mm:ss" rCel.Offset(, -1) = WorksheetFunction.WeekNum(rCel.Offset(, -2)) End If End If Next End If
Set rInt = Nothing Application.EnableEvents = True Application.ScreenUpdating = True End Sub
[/vba]
[p.s.]Vvod_dannyh в Vvod_dannyh.Columns(3) - зачем, если код в модуле листа?[/p.s.]
w00t, так пойдет? [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim rInt As Range, rCel As Range
Application.EnableEvents = False Application.ScreenUpdating = False Set rInt = Intersect(Target, Range("c5:c" & Rows.Count))
If Not rInt Is Nothing Then For Each rCel In rInt rCel.NumberFormat = "0" If rCel = Empty Then rCel.Offset(, -2).Resize(, 2) = Empty Else If rCel.Offset(, -2) = "" Then rCel.Offset(, -2) = Now() rCel.Offset(, -2).NumberFormat = "dd.mm.yyyy hh:mm:ss" rCel.Offset(, -1) = WorksheetFunction.WeekNum(rCel.Offset(, -2)) End If End If Next End If
Set rInt = Nothing Application.EnableEvents = True Application.ScreenUpdating = True End Sub
[/vba]
[p.s.]Vvod_dannyh в Vvod_dannyh.Columns(3) - зачем, если код в модуле листа?[/p.s.]Manyasha