Страницы: 1
RSS
Активировать TextBox в Userform
 
Всем здравствуйте!
Хочу автоматизировать проект, но столкнулся с проблемой.
1. Как выполнить данный макрос при вводе в TextBox1 в Userform (Пользователь), например одну из трех комбинаций: "1122" или "1321" или "1451" или ...
После одного из правильного варианта должна открыться Userform1
2. После запуска Userform1, нужно чтобы макрос ItmScan_Change работал как и при обычном запуске формы. Выгрузить форму Пользователь (Unload Me) куда только не пробывал ставить, не помогает!

Файл прилагаю

Если кто знает как это сделать, буду благодарен!
Заранее спасибо!
 
Изменено: Павел Павлов - 20.05.2024 00:27:31
 
Павел Павлов,
по 1 может быть так?
Код
Private Sub TextBox1_Change()
    Dim allowedValues As Variant
    Dim inputValue As String
    Dim matchFound As Boolean
    Dim i As Integer

    allowedValues = Array("Значение1", "Значение2", "Значение3", "Значение4", "Значение5", "Значение6", "Значение7", "Значение8", "Значение9", "Значение10")

    inputValue = TextBox1.Value

    matchFound = False
    For i = LBound(allowedValues) To UBound(allowedValues)
        If inputValue = allowedValues(i) Then
            matchFound = True
            Exit For
        End If
    Next i

    If matchFound Then
        Unload Me
        UserForm1.Show
    End If
End Sub
Изменено: evgeniygeo - 20.05.2024 06:07:23
 
Большое спасибо! С первой проблемой решили, но осталась вторая(
 
Павел Павлов,
а по второму я не понял в целом суть)))
нужно сначала чтобы появилась форма "Пользователь" а уже потом "Userform1"?
Изменено: evgeniygeo - 21.05.2024 08:36:39
 
evgeniygeo,  Открываем файл, запускаем форму Пользователь, вводим "1324" или "5221", запускается Терминал, и здесь ячейка код (ItmScan) не работает(
Куда только не выгружал форму Пользователь, бестолку. Как то так
За первую решенную проблему еще раз спасибо!
 
Павел Павлов,
посмотрите во вложении

Получилось сделать только через:
Код
        Me.Hide
        Application.OnTime Now, "ShowUserForm1"
        Unload Me

Возможно, более опытные коллеги на форуме могут предложить что-то более изящное
Изменено: evgeniygeo - 23.05.2024 07:34:58
 
evgeniygeo, Огромное вам спасибо!!! Все отлично работает.
 
Один коллега дополнил этот код. Если вдруг кому-то пригодиться

Код
Private Sub TextBox1_Change()
 On Error GoTo ErrorHandler
    Dim allowedValues As Variant
    Dim inputValue  As String
    Dim matchFound  As Boolean
    Dim i           As Long

    allowedValues = Array("Значени1", "Значени2", "Значени3", "Значени4")
    inputValue = Me.TextBox1.Value
    matchFound = False

    For i = LBound(allowedValues) To UBound(allowedValues)

        If inputValue = allowedValues(i) Then
            matchFound = True
            Exit For
        End If

    Next i

    If matchFound Then
        Me.Hide

        Select Case inputValue
            Case "1324"
                UserForm1.Qwerty.Caption = "Значени1"
            Case "5221"
                UserForm1.Qwerty.Caption = "Значени2"
            Case "5322"
                UserForm1.Qwerty.Caption = "Значени3"
            Case "4123"
                UserForm1.Qwerty.Caption = "Значени4"
        End Select

        Application.OnTime Now, "ТЕРМИНАЛ"
        Unload Me
    End If

    Exit Sub
ErrorHandler:
    MsgBox "Произошла ошибка: " & Err.Description

    With Workbooks(TargetBook)
       
       
        .Close savechanges:=False
    End With

End

 
  
End Sub
Изменено: Павел Павлов - 26.05.2024 21:13:56
Страницы: 1
Наверх