nopoxz Цитата: если в ячейке данные начинаются с "ББ" и во второй ячеке (таже строка, но на 4 ячейки левее) введено значение "Привет", то в третьей ячейке (таже строка, но на 10 правее) вставлялось слово "Ура"
вот код [more]
Код: Private Sub Worksheet_Change(ByVal Target As Range)
Dim iCell As Range
' анализируем только изменения в столбцах A затем E
If Not Intersect(Target, [A:A]) Is Nothing Then
Application.EnableEvents = False
For Each iCell In Intersect(Target, [A:A])
If (Not IsEmpty(iCell)) And _
(TypeName(iCell.Value) = "String") And _
(Not IsEmpty(iCell.Offset(, 4))) And _
(TypeName(iCell.Offset(, 4).Value) = "String") _
And (iCell = "Привет") And (Left(iCell.Offset(, 4).Value, 2) = "ББ") Then
iCell.Offset(, 14).Value = "УРА! ЗАРАБОТАЛО!"
Else
' тут можно стирать УРА, если его нужно убирать...
iCell.Offset(, 14).ClearContents
End If
Next
Application.EnableEvents = True
End If
If Not Intersect(Target, [E:E]) Is Nothing Then
Application.EnableEvents = False
For Each iCell In Intersect(Target, [E:E])
If (Not IsEmpty(iCell)) And _
(TypeName(iCell.Value) = "String") And _
(Not IsEmpty(iCell.Offset(, -4))) And _
(TypeName(iCell.Offset(, -4).Value) = "String") _
And (iCell.Offset(, -4) = "Привет") And (Left(iCell, 2) = "ББ") Then
iCell.Offset(, 10) = "УРА! ЗАРАБОТАЛО!"
Else
' тут можно стирать УРА, если его нужно убирать...
iCell.Offset(, 10).ClearContents
End If
Next
Application.EnableEvents = True
End If
End Sub