Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("C2:C5")) Is Nothing And Target.Cells.Count = 1 Then
Application.EnableEvents = False
newVal = Target
Application.Undo
oldval = Target
If Len(oldval) <> 0 And oldval <> newVal Then
Target = Target & "," & newVal
Else
Target = newVal
End If
If Len(newVal) = 0 Then Target.ClearContents
Application.EnableEvents = True
End If
End Sub
2 Скрипт - складывает значение в одной ячейке
Код
Private vData
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, [H5:H100]) Is Nothing Then
If IsNumeric(Target) Then vData = Target
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, [H5:H100]) Is Nothing Then
Application.EnableEvents = False
If Target.Count = 1 And IsNumeric(Target(1)) Then
Target = Target + vData
Else
Application.Undo
End If
Application.EnableEvents = True
End If
End Sub
Необходимо совместить оба скрипта, чтобы они могли работать на одном листе. Действие сриптов распространяются только на столбы H и C Огромное спасибо уважаемые программисты
1 Скрипт отображает выбираемые значение в одной ячейке и разделяет их запятыми -- я выбираю услуги, в другой ячейке в зависимости от услуги выводиться цена. 2 Срипт должен складывать цены, если выбрано больше 2-х услуг
Private vData
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, [H5:H100]) Is Nothing Then
Application.EnableEvents = False
If Target.Count = 1 And IsNumeric(Target(1)) Then
Target = Target + vData
Else
Application.Undo
End If
Application.EnableEvents = True
ElseIf Not Intersect(Target, Range("C2:C5")) Is Nothing And Target.Cells.Count = 1 Then
Application.EnableEvents = False
newVal = Target
Application.Undo
oldval = Target
If Len(oldval) <> 0 And oldval <> newVal Then
Target = Target & "," & newVal
Else
Target = newVal
End If
If Len(newVal) = 0 Then Target.ClearContents
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, [H5:H100]) Is Nothing Then
If IsNumeric(Target) Then vData = Target
End If
End Sub
bbt_26, ну я даже не знаю.... В ячейках С5:С7 значения добавляются через запятую, в столбце Е цена увеличивается при изменении с наведением... Разве что (в порядке гадания) макросы не включены?
Я объясню, при добавлении услуги, цена должна увеличиваться в поле Цена, а там сейчас НЕизвестная услуга. Я добавляю услугу, цена 300, добавляю ещё одну ценой в 400, в ячейки "Цена" теперь должно быть 700