Всем привет, помогите дописать макрос, чтобы при выборе в 7 столбце (H) из списка значения "исполнено" или "без исполнения" в 8 столбце проставлялась дата [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Target.Column = 2 And Target.Row > 1 And Not IsEmpty(Target.Value) And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Target.Column = 11 And Target.Row > 1 And Not IsEmpty(Target.Value) And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Target.Column = 8 And Target.Row > 1 And Not IsEmpty(Target.Value) And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Target.Column = 43 And Target.Row > 1 And Not IsEmpty(Target.Value) And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Not Intersect(Target, Range("E2:E99999")) Is Nothing Then i = Split(Target.Address, "$")(2) LastRow = Sheets("РФ").Cells(Rows.Count, 1).End(xlUp).Row If InStr(Cells(i, 4), "РФ") > 0 Then Range("A" & CStr(i) & ":E" & i).Copy Sheets("РФ").Range("A" & LastRow + 1) End If End If End Sub
[/vba]
Всем привет, помогите дописать макрос, чтобы при выборе в 7 столбце (H) из списка значения "исполнено" или "без исполнения" в 8 столбце проставлялась дата [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Target.Column = 2 And Target.Row > 1 And Not IsEmpty(Target.Value) And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Target.Column = 11 And Target.Row > 1 And Not IsEmpty(Target.Value) And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Target.Column = 8 And Target.Row > 1 And Not IsEmpty(Target.Value) And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Target.Column = 43 And Target.Row > 1 And Not IsEmpty(Target.Value) And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Not Intersect(Target, Range("E2:E99999")) Is Nothing Then i = Split(Target.Address, "$")(2) LastRow = Sheets("РФ").Cells(Rows.Count, 1).End(xlUp).Row If InStr(Cells(i, 4), "РФ") > 0 Then Range("A" & CStr(i) & ":E" & i).Copy Sheets("РФ").Range("A" & LastRow + 1) End If End If End Sub
If Target.Column = 7 And Target.Row > 1 And (Target.Value="исполнено" Or Target.Value="без исполнения") And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date
[/vba]
Здравствуйте. Допишите ещё одну строчку [vba]
Код
If Target.Column = 7 And Target.Row > 1 And (Target.Value="исполнено" Or Target.Value="без исполнения") And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date
Здравствуйте. Допишите ещё одну строчку If Target.Column = 7 And Target.Row > 1 And (Target.Value="исполнено" Or Target.Value="без исполнения") And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date
Попробовал, но дата проставляется при выборе любого значения, не зависимо от выбора слов "Исполнено", или "без исполнения" Вот так получилось:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Target.Column = 2 And Target.Row > 1 And Not IsEmpty(Target.Value) And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Target.Column = 11 And Target.Row > 1 And Not IsEmpty(Target.Value) And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Target.Column = 8 And Target.Row > 1 And Not IsEmpty(Target.Value) And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Target.Column = 43 And Target.Row > 1 And Not IsEmpty(Target.Value) And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Target.Column = 7 And Target.Row > 1 And (Target.Value = "исполнено" Or Target.Value = "без исполнения") And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Not Intersect(Target, Range("E2:E99999")) Is Nothing Then i = Split(Target.Address, "$")(2) LastRow = Sheets("РФ").Cells(Rows.Count, 1).End(xlUp).Row If InStr(Cells(i, 4), "РФ") > 0 Then Range("A" & CStr(i) & ":E" & i).Copy Sheets("РФ").Range("A" & LastRow + 1) End If End If End Sub
Здравствуйте. Допишите ещё одну строчку If Target.Column = 7 And Target.Row > 1 And (Target.Value="исполнено" Or Target.Value="без исполнения") And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date
Попробовал, но дата проставляется при выборе любого значения, не зависимо от выбора слов "Исполнено", или "без исполнения" Вот так получилось:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Target.Column = 2 And Target.Row > 1 And Not IsEmpty(Target.Value) And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Target.Column = 11 And Target.Row > 1 And Not IsEmpty(Target.Value) And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Target.Column = 8 And Target.Row > 1 And Not IsEmpty(Target.Value) And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Target.Column = 43 And Target.Row > 1 And Not IsEmpty(Target.Value) And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Target.Column = 7 And Target.Row > 1 And (Target.Value = "исполнено" Or Target.Value = "без исполнения") And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Not Intersect(Target, Range("E2:E99999")) Is Nothing Then i = Split(Target.Address, "$")(2) LastRow = Sheets("РФ").Cells(Rows.Count, 1).End(xlUp).Row If InStr(Cells(i, 4), "РФ") > 0 Then Range("A" & CStr(i) & ":E" & i).Copy Sheets("РФ").Range("A" & LastRow + 1) End If End If End Sub
Поверила Вам, что столбец Н седьмой, а на самом деле восьмой [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Target.Column = 2 And Target.Row > 1 And Not IsEmpty(Target.Value) And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Target.Column = 11 And Target.Row > 1 And Not IsEmpty(Target.Value) And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Target.Column = 8 And Target.Row > 1 And (Target.Value = "исполнено" Or Target.Value = "без исполнения") And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Target.Column = 43 And Target.Row > 1 And Not IsEmpty(Target.Value) And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Not Intersect(Target, Range("E2:E99999")) Is Nothing Then i = Split(Target.Address, "$")(2) LastRow = Sheets("РФ").Cells(Rows.Count, 1).End(xlUp).Row If InStr(Cells(i, 4), "РФ") > 0 Then Range("A" & CStr(i) & ":E" & i).Copy Sheets("РФ").Range("A" & LastRow + 1) End If End If End Sub
[/vba]
Поверила Вам, что столбец Н седьмой, а на самом деле восьмой [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Target.Column = 2 And Target.Row > 1 And Not IsEmpty(Target.Value) And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Target.Column = 11 And Target.Row > 1 And Not IsEmpty(Target.Value) And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Target.Column = 8 And Target.Row > 1 And (Target.Value = "исполнено" Or Target.Value = "без исполнения") And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Target.Column = 43 And Target.Row > 1 And Not IsEmpty(Target.Value) And Target.Offset(0, 1).Value = "" Then _ Target.Offset(0, 1).Value = Date If Not Intersect(Target, Range("E2:E99999")) Is Nothing Then i = Split(Target.Address, "$")(2) LastRow = Sheets("РФ").Cells(Rows.Count, 1).End(xlUp).Row If InStr(Cells(i, 4), "РФ") > 0 Then Range("A" & CStr(i) & ":E" & i).Copy Sheets("РФ").Range("A" & LastRow + 1) End If End If End Sub