Просмотрел на форуме схожие темы, ни один из ответов не решает вопрос. В прилагаемом файле необходимо чтобы в столбце Х (дата допуска к сессии), строго фиксировалась и не изменялась дата получения допуска ("Д" - в столбце Е). Т.е. при появлении в столбце Е - "Д" (по формуле), в столбце Х проставлялась текущая дата и она не обновлялась, при изменении этих значений в других строках. И так на нескольких листах. Пробовал все предлагаемые варианты, во всех случаях значения обновляются во всех текущих строках указанных столбцов, это не надо. Благодарю!
Просмотрел на форуме схожие темы, ни один из ответов не решает вопрос. В прилагаемом файле необходимо чтобы в столбце Х (дата допуска к сессии), строго фиксировалась и не изменялась дата получения допуска ("Д" - в столбце Е). Т.е. при появлении в столбце Е - "Д" (по формуле), в столбце Х проставлялась текущая дата и она не обновлялась, при изменении этих значений в других строках. И так на нескольких листах. Пробовал все предлагаемые варианты, во всех случаях значения обновляются во всех текущих строках указанных столбцов, это не надо. Благодарю!Vladimir7200
Уже знакомая табличка. Можно так. Код в модуле "Эта книга"[vba]
Код
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Not Intersect(Range("L5:T" & Range("D4").End(xlDown).Row), Target) Is Nothing Then Range("X" & Target.Row) = IIf(Range("Y" & Target.Row) = 9, Date, "") End If End Sub
[/vba] Макрос запускается по событию изменения значений на листе. Если событие произошло в диапазоне L5:Tn (n зависит от кол-ва студентов и определяется автоматически), то по столбцу Y определяется количество сданных зачетов и если сдано 9, в X ставим дату. Событие изменения значений в столбце Е, где значения определяются формулой отловить сложнее, поэтому сделано по-другому.
PS. что-то я намудрил. Можно ловить "Д" в столбце Е. Тогда надо заменить одну строку на[vba]
Уже знакомая табличка. Можно так. Код в модуле "Эта книга"[vba]
Код
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Not Intersect(Range("L5:T" & Range("D4").End(xlDown).Row), Target) Is Nothing Then Range("X" & Target.Row) = IIf(Range("Y" & Target.Row) = 9, Date, "") End If End Sub
[/vba] Макрос запускается по событию изменения значений на листе. Если событие произошло в диапазоне L5:Tn (n зависит от кол-ва студентов и определяется автоматически), то по столбцу Y определяется количество сданных зачетов и если сдано 9, в X ставим дату. Событие изменения значений в столбце Е, где значения определяются формулой отловить сложнее, поэтому сделано по-другому.
PS. что-то я намудрил. Можно ловить "Д" в столбце Е. Тогда надо заменить одну строку на[vba]