EXCEL VBA problemas con el código.

Pues si tengo un excel en cual se encarga en pocas palabras de pegar en una hoja una data y en otra hoja tengo una hoja vacía con un form para llenar dicha hoja, lo que hace el form es que lo tengo codificado para que yo con un lector de códigos pueda leer dichos códigos y en las celda de la hoja de excel me pegue la información de dicho código que tengo en la otra hoja de excel, el problema es que tengo el código en evento Change de dicho textbox y cuando leo un código con el lector lo que hace el lector es que : pone 1 por 1 cada dígito en gran velocidad y con cada dígito en el text box se toma como un evento Change y empieza el código a correr, les anexo el código para que vean:

Private Sub TrackingLabel_Change()
    Set h1 = Sheets("Insert_Sheet")
    Set h2 = Sheets("Actualizacion - Control de Entr")            'hoja donde se copian los datos
    Valor = TrackingLabel.Value
    If Valor = "" Then Exit Sub
    Set b = h1.Columns("A").Find(Valor, lookat:=xlWhole)
    If Not b Is Nothing Then
        MensajeroLabel.Caption = h1.Cells(b.Row, "B")
        ClienteLabel.Caption = h1.Cells(b.Row, "E")
        ProductoLabel.Caption = h1.Cells(b.Row, "C")
        TCLabel.Caption = h1.Cells(b.Row, "D")
        CedulaLabel.Caption = h1.Cells(b.Row, "F")
        '
        fila = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
        serie = WorksheetFunction.Max(h2.Range("A2:A" & fila - 1)) + 1
        h2.Cells(fila, "A") = serie
        h2.Cells(fila, "B") = FechaLabel.Caption
        h2.Cells(fila, "C") = USERONLINE.Caption
        h2.Cells(fila, "D") = MensajeroLabel.Caption
        h2.Cells(fila, "E") = ClienteLabel.Caption
        h2.Cells(fila, "F") = TCLabel.Caption
        h2.Cells(fila, "G") = CedulaLabel.Caption
        h2.Cells(fila, "I") = TrackingLabel.Value
    If boton1.Value = True Then
      h2.Cells(fila, "H") = boton1.Caption
        End If
          If boton2.Value = True Then
      h2.Cells(fila, "H") = boton2.Caption
        End If
    Else
        blog = Error
        MsgBox "Tracking no encontrado", vbExclamation, blog
    End If
    TrackingLabel = Empty
End Sub

cuando leo con el lector, solo toma el primer digito, lo busca en la data y muestra el msgbox, el proceso no esta como yo lo espero AYUDA POR FAVOR no se como Optimatizarlo! 

2

2 Respuestas

89.525 pts. Ingeniero Industrial, docente universitario de...

Lo que pasa es que por más veloz que parezca la lectura no lo es.

Apenas hace la lectura del primer caracter se "dispara" el evento...

Podríamos intentar algo como esto..

Inserta como primera linea de la subrutina,... antes del Set h1=...

If Len( TrackingLabel.Text)<15 Then Exit Sub

Estoy suponiendo que el codigo tiene 15 caracteres... adaptalo a lo que tenga en realidad

15.775 pts. Si estas tratando siempre de ser normal, nunca sabrás...

Pregunta duplicada:

excel vba problemas help me

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas