Crear una macro para buscar un valor y luego ingresar datos en la fila asociada al dato encontrado

Necesito crear una macro que le pide al usuario ingresar rut, y luego identificar la fila de ese dato e ingresar datos en la misma fila pero ir corriéndose de uno casilla hacia al lado y que los guarde.

1 respuesta

Respuesta
1

H o l a 

te paso la macro 

Ingresas el rut, presionas enter y automáticamente te volcará los datos y llenas las casillas necesarias y lo registras


Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
        If TextBox1 = "" Then Exit Sub
        Set h = Sheets("hoja1")                                 'nombre de la hoja
        Set b = h.Columns("A").Find(TextBox1, lookat:=xlWhole) 'Busca en la columna A
        If Not b Is Nothing Then                                'Si lo encuentra
            TextBox1.Value = h.Cells(b.Row, "A").Value
            TextBox2.Value = h.Cells(b.Row, "B").Value
            TextBox3.Value = h.Cells(b.Row, "C").Value
            TextBox4.Value = h.Cells(b.Row, "D").Value
        Else
            MsgBox "El dato no existe"                          'si no existe
        End If
End Sub

Private Sub CommandButton1_Click()
Set h1 = Sheets("hoja1")
    Set r = h1.Columns("A")
    Set b = r.Find(TextBox1, lookat:=xlWhole)
    If Not b Is Nothing Then
            h1.Cells(b.Row, "C") = TextBox3
            h1.Cells(b.Row, "D") = TextBox4
           MsgBox "Actualizado"
           TextBox1 = ""
           TextBox2 = ""
           TextBox3 = ""
           TextBox4 = ""
    End If
End Sub

me comentas si falta algo y valora la respuesta para finalizar saludos!

¡Gracias! 

PEro no me corre :(

Basicamente lo que necesito es : tengo al rededor de 600 datos en una hoja de Excel , quiero que Mediante un mensaje pregunte el rut Del trabajador y la Marcos lo busque, luego preguntar una serie de datos que se Ingresen en las celdas de ese rut 

Pero necesito como está organizado tus datos, fila, columna, nombre de la hoja o envíame tus archivo [email protected] y me explicas con un ejemplo saludos!

H o l a 

te paso la macro actualizada 

Private Sub CommandButton1_Click()
'Por Aortiz
Set h1 = Sheets("hoja1")
    Set r = h1.Columns("A")
    Set b = r.Find(TextBox1, lookat:=xlWhole)
    If Not b Is Nothing Then
            h1.Cells(b.Row, "A") = Val(TextBox1)
            h1.Cells(b.Row, "B") = Val(TextBox2)
            h1.Cells(b.Row, "C") = Val(TextBox3)
            h1.Cells(b.Row, "D") = Val(TextBox4)
            h1.Cells(b.Row, "E") = Val(TextBox5)
            h1.Cells(b.Row, "F") = Val(TextBox6)
            h1.Cells(b.Row, "G") = Val(TextBox7)
            h1.Cells(b.Row, "H") = Val(TextBox8)
            h1.Cells(b.Row, "I") = Val(TextBox9)
            h1.Cells(b.Row, "J") = Val(TextBox10)
            h1.Cells(b.Row, "K") = Val(TextBox11)
            h1.Cells(b.Row, "L") = Val(TextBox12)
            h1.Cells(b.Row, "M") = Val(TextBox13)
            h1.Cells(b.Row, "N") = Val(TextBox14)
            h1.Cells(b.Row, "O") = Val(TextBox15)
            h1.Cells(b.Row, "P") = Val(TextBox16)
            h1.Cells(b.Row, "Q") = Val(TextBox17)
            h1.Cells(b.Row, "R") = Val(TextBox18)
            h1.Cells(b.Row, "S") = Val(TextBox19)
            h1.Cells(b.Row, "T") = Val(TextBox20)
            h1.Cells(b.Row, "U") = Val(TextBox21)
            h1.Cells(b.Row, "V") = Val(TextBox22)
            h1.Cells(b.Row, "W") = Val(TextBox23)
            h1.Cells(b.Row, "X") = Val(TextBox24)
           '
           TextBox1 = ""
           TextBox2 = ""
           TextBox3 = ""
           TextBox4 = ""
            TextBox5 = ""
           TextBox6 = ""
           TextBox7 = ""
           TextBox8 = ""
            TextBox9 = ""
           TextBox10 = ""
           TextBox11 = ""
           TextBox12 = ""
            TextBox13 = ""
           TextBox14 = ""
           TextBox15 = ""
           TextBox16 = ""
            TextBox17 = ""
            TextBox18 = ""
           TextBox19 = ""
           TextBox20 = ""
           TextBox21 = ""
            TextBox22 = ""
           TextBox23 = ""
           TextBox24 = ""
           '
           MsgBox "Datos actualizados"
    End If
End Sub
'
'
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Por Aortiz
 If TextBox1 = "" Then Exit Sub
        Set h = Sheets("hoja1")                                 'nombre de la hoja
        Set b = h.Columns("A").Find(TextBox1, lookat:=xlWhole) 'Busca en la columna A
        If Not b Is Nothing Then                                'Si lo encuentra
            TextBox1 = h.Cells(b.Row, "A").Value
            TextBox2 = h.Cells(b.Row, "B").Value
            TextBox3 = h.Cells(b.Row, "C").Value
            TextBox4 = h.Cells(b.Row, "D").Value
            TextBox5 = h.Cells(b.Row, "E").Value
            TextBox6 = h.Cells(b.Row, "F").Value
            TextBox7 = h.Cells(b.Row, "G").Value
            TextBox8 = h.Cells(b.Row, "H").Value
            TextBox9 = h.Cells(b.Row, "I").Value
            TextBox10 = h.Cells(b.Row, "J").Value
            TextBox11 = h.Cells(b.Row, "K").Value
            TextBox12 = h.Cells(b.Row, "L").Value
            TextBox13 = h.Cells(b.Row, "M").Value
            TextBox14 = h.Cells(b.Row, "N").Value
            TextBox15 = h.Cells(b.Row, "O").Value
            TextBox16 = h.Cells(b.Row, "P").Value
            TextBox17 = h.Cells(b.Row, "Q").Value
            TextBox18 = h.Cells(b.Row, "R").Value
            TextBox19 = h.Cells(b.Row, "S").Value
            TextBox20 = h.Cells(b.Row, "T").Value
            TextBox21 = h.Cells(b.Row, "U").Value
            TextBox22 = h.Cells(b.Row, "V").Value
            TextBox23 = h.Cells(b.Row, "W").Value
            TextBox24 = h.Cells(b.Row, "X").Value
        Else
            MsgBox "El dato no existe"                          'si no existe
        End If
End Sub

Valora para finalizar saludos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas