Страницы: 1
RSS
Проварка номера Container,a, Проверра фората написания контеинера
 
Здраствуйте.
недо макрос ,чтоб проверил написание номера контеинкра в одной ячейке. Если фармат не совпадает то msgbox, если совподает то другой макрос. Проблемм что заполняеш быстро и иногда то недопишешь то перепишешь.  Номер контеинеров всегда 4 первые буквы и следом срвзу 7 цифр. Пример: MSKU3456456  или TRPU1234567.
 
Цитата
недо макрос ,чтоб проверил написание номера контеинкра в одной ячейке
В модуль листа
Код
Private Sub Worksheet_Change(ByVal Target As Range)
 With CreateObject("VBScript.RegExp")
     .Global = True
     .Pattern = "[A-Z]{4}\d{7}"
   If .test(ActiveCell) Then
     MsgBox "Правильный ввод"
   Else
     MsgBox "Ошибка при вводе"
   End If
 End With
End Sub
 
Kuzmichма
а зачем нужен ActiveCell если есть Target? ну, и RegExpу нужен Value ячейки, а не она сама
чтобы закрыть тему, я бы в Else написал:
Thisworkbook.Close False

Aleksejs Bogdanovs,
как только вы эту процедуру вставите в модуль листа, хрен что вы в него запишете кроме № контейнера
Изменено: Ігор Гончаренко - 01.10.2022 21:25:28
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
переделал на кнопку.
но ошибка срабатывает если число или букв меньше, а если больше то пишет ОК. а хотелось бы не меньше не больше , а именно только 4 буквы и 7цифр
спасибо за понимание
Код
Sub probnik()

Cell = Range("A1").Value

With CreateObject("VBScript.RegExp")
     .Global = True
     .Pattern = "[A-Z]{4}\d{7}"
     If .test(Cell) Then
     MsgBox "da"
   Else
     MsgBox "net"
   End If
 End With

End Sub
 
Aleksejs Bogdanovs,  
Код
.Pattern = "(^[A-Z]{4})(\d{7}$)"
 
великая сила доллара
большое спасибо
Страницы: 1
Наверх