Macro - Formulario Buscar información de Columna A desde Hoja DATOS en excel. Error.

He logrado modificar mi proyecto, ya termine varios formularios que funcionan perfectamente, pero sigo con el error en el Formulario BUSQUEDA.

Cuando le doy click al Boton BUSCAR, este no logra ubicar la info que requiero que se encuentra en la columna A "BIN" (Hoja DATOS).

Aqui pego el codigo:

Private Sub CommandButton1_Click()
Dim i As Double
Dim final As Double
Application.ScreenUpdating = False
Worksheets("DATOS").Visible = True
Worksheets("DATOS").Select
final = Range("A" & Rows.Count).End(xlUp).Row
If BUSQUEDA.TextBox1 = Empty Then
MsgBox "INTRODUCE BIN", vbInformation, "BUSQUEDA"
End If
'GRABAMOS LOS DATOS QUE HEMOS MODIFICADO DEL CLIENTE
For i = 2 To final
If Worksheets("DATOS").Cells(i, 1) = "" Then
final = i - 1
Exit For
End If
Next
For i = 2 To final
If BUSQUEDA.TextBox1 = Worksheets("DATOS").Cells(i, 1) Then
BUSQUEDA.TextBox17.Enabled = True
BUSQUEDA.TextBox18.Enabled = True
BUSQUEDA.ComboBox12.Enabled = True
BUSQUEDA.TextBox15.Enabled = True
BUSQUEDA.TextBox1 = Empty
BUSQUEDA.TextBox17 = Worksheets("DATOS").Cells(i, 1)
BUSQUEDA.TextBox18 = Worksheets("DATOS").Cells(i, 2)
BUSQUEDA.ComboBox12 = Worksheets("DATOS").Cells(i, 3)
BUSQUEDA.TextBox15 = Worksheets("DATOS").Cells(i, 4)
BUSQUEDA.TextBox17.Locked = True
BUSQUEDA.TextBox18.Locked = True
BUSQUEDA.ComboBox12.Enabled = False
BUSQUEDA.TextBox15.Locked = True
Exit For
End If
Next
If BUSQUEDA.TextBox1 <> Empty Then
MsgBox "CAMPO BIN VACIO", vbExclamation, "BUSQUEDA"
End If
Worksheets("DATOS").Visible = False
Application.ScreenUpdating = True
End Sub
Private Sub CommandButton2_Click()
'CERRAMOS
Unload Me
Application.DisplayAlerts = False
ActiveWorkbook.Save
End Sub
Private Sub Frame1_Click()
End Sub
Private Sub TextBox1_Change()
'mayusculas
BUSQUEDA.TextBox1.Text = UCase(BUSQUEDA.TextBox1.Text)
End Sub
Private Sub TextBox17_Change()
'mayusculas
BUSQUEDA.TextBox17.Text = UCase(BUSQUEDA.TextBox17.Text)
End Sub
Private Sub TextBox18_Change()
'mayusculas
BUSQUEDA.TextBox18.Text = UCase(BUSQUEDA.TextBox18.Text)
End Sub
Private Sub TextBox15_Change()
'mayusculas
BUSQUEDA.TextBox15.Text = UCase(BUSQUEDA.TextBox15.Text)
End Sub
Private Sub UserForm_Initialize()
'CARGAMOS LOS COMBOS
'PAIS
final = Worksheets("COMBOS").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To final
BUSQUEDA.ComboBox12.AddItem (Worksheets("COMBOS").Cells(i, 1))
Next
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = 0 Then Cancel = True
End Sub
Private Sub ComboBox10_Change()
End Sub
Private Sub ComboBox11_Change()
End Sub
Private Sub ComboBox12_Change()
End Sub
Private Sub ComboBox9_Change()
End Sub

1 Respuesta

Respuesta
1

H o l a:

No pusiste qué error tienes.

Le hice unos cambios a tu macro, por ejemplo, si haces referencia a la hoja, no es necesario que la hagas visible.

Private Sub CommandButton1_Click()
'Act.Por.Dante Amor
    Set h1 = Worksheets("DATOS")
    If BUSQUEDA.TextBox1 = Empty Then
        MsgBox "INTRODUCE BIN", vbInformation, "BUSQUEDA"
        TextBox1.SetFocus
        Exit Sub
    End If
    'GRABAMOS LOS DATOS QUE HEMOS MODIFICADO DEL CLIENTE
    Set b = h1.Columns("A").Find(TextBox1, lookat:=xlWhole)
    If Not b Is Nothing Then
        BUSQUEDA.TextBox17.Enabled = True
        BUSQUEDA.TextBox18.Enabled = True
        BUSQUEDA.ComboBox12.Enabled = True
        BUSQUEDA.TextBox15.Enabled = True
        'BUSQUEDA.TextBox1 = Empty
        BUSQUEDA.TextBox17 = h1.Cells(b.Row, 1)
        BUSQUEDA.TextBox18 = h1.Cells(b.Row, 2)
        BUSQUEDA.ComboBox12 = h1.Cells(b.Row, 3)
        BUSQUEDA.TextBox15 = h1.Cells(b.Row, 4)
        BUSQUEDA.TextBox17.Locked = True
        BUSQUEDA.TextBox18.Locked = True
        BUSQUEDA.ComboBox12.Enabled = False
        BUSQUEDA.TextBox15.Locked = True
    Else
        MsgBox "El BIN no existe", vbExclamation
    End If
    Application.ScreenUpdating = True
End Sub

Tampoco entiendo por qué capturas un dato en el textbox1, luego lo buscas, si lo encuentras, entonces el textbox1 lo pones vacío.

Prueba la macro que te estoy enviando.


Muchas gracias Dante!

Te comento que me estoy guiando de una plantilla que encontré googleando y lo modifique a mi necesidad, pero no entiendo del todo vba aun.

Quedo perfecta la macro.

Saludos

¡Gracias! 

R ecuerda valorar la respuesta. Al final de mi respuesta está un botón para valorar la respuesta.

H o l a:

Si la macro quedó perfecta, y no necesitas más información, no entiendo por qué valoras solamente como buena mi respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas