Добрый день. Мучаюсь второй день (тупой я). Необходимо чтобы после ввода данных в ячейку макрос проверил данные и если оно не проходят по критериям-выходим. В ячейку вводятся числа (1,2,3,4,5,6,7,8,9,10,11,12) через запятую в различных комбинациях (может быть просто 4). Необходимо получить все числа, разделённые запятыми и если хотябы одно число <1 или >12-выходим. Не могу извлечь числа расположенные между запятыми. На форуме находил подобные темы, но прикрутить не смог под свой случай. Макрос в модуле листа:
Код
Sub Worksheet_Change(ByVal Target As Range)
Dim tx As String
Dim i As Long
Dim t As String
If Intersect(Target, Range("B:B")) Is Nothing Then
Exit Sub
End If
If Target.Count > 1 Then Exit Sub
tx = Target.Value
If Len(tx) = 0 Then Exit Sub
For i = 1 To Len(tx)
t = Mid(tx, i, 1)
If IsNumeric(t) Then
MsgBox t
If t > 12 Then
MsgBox "Неверные данные"
End If
End If
Next i
End Sub
Sub Worksheet_Change(ByVal Target As Range)
Dim tx
Dim i As Long
If Intersect(Target, Range("B:B")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Len(Target.Value) = 0 Then Exit Sub
tx = Split(Target.Value, ",")
For i = LBound(tx) To UBound(tx)
If IsNumeric(tx(i)) Then
If Val(tx(i)) > 12 Or Val(tx(i)) < 1 Then
MsgBox "Неверные данные"
Exit Sub
End If
End If
Next i
End Sub
Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [B:B]) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
For Each q In Split(Target, ",")
If Not IsNumeric(q) Or Val(q) = 0 Or Val(q) > 12 Then
MsgBox "Неверные данные!"
Target = "": Exit For
End If
Next
Application.EnableEvents = True
End Sub