Macro: Buscar y Copiar datos de fila a columna

Hola saludos; quisiera saber si me pueden ayudar con lo siguiente:
En la Hoja1, tengo las siguientes filas
Cedula nombre monto
11111 jose 212
22222 jose 312
Quisiera una macro que busque por la columna "cedula" y que la información que este en la fila donde coincide la cedula aparezca en la Hoja2 en la columna A.
Gracias!

1 Respuesta

Respuesta
1
Según lo que entiendo de tu pregunta este código te puede ayudar
*****************************************
Sub TransponerRegistro()
'Creada por FSerrano el 110518
On Error Resume Next
inicio:
'solicita el numero a buscar
cedula = InputBox("Digite el numero de la cedula a buscar", "Consulta") * 1
'verifica que el valor ingresado sea un numero y si no emite un mensaje con posibilidad de corrección
If Application.WorksheetFunction.IsNumber(cedula) = True Then
'identifica la fila que coincide con el valor buscado
    fila = Application.WorksheetFunction.Match(cedula, Range("A1", Cells(ActiveCell.SpecialCells(xlLastCell).Row, 1)), 0)
    Cells(fila, 1).Activate
'copia los valores que acompañan al registro que satisface la condición
    Range(ActiveCell, Selection.End(xlToRight)).Copy
'pega los datos copiados en la pagina siguiente
    ActiveSheet.Next.Range("a1").PasteSpecial Transpose:=True
'rutina para el caso que el valor ingresado no sea un numero
Else
    eleccion = MsgBox("El dato ingresado no es válido", vbRetryCancel)
    If eleccion = 4 Then
        GoTo inicio
    End If
End If
End Sub
*****************************************
Sobre el código, vale aclarar que: pega los datos tal cual los encuentra, lo que implica que si modificas la hoja1 no se van a actualizar en la hoja2, y cada vez que se ejecuta la macro se borran los datos que estén en la hoja2
A si me funcionó muy bien, se le podría agregar una condición, por ejemplo, está: monto = 212, descuento = 0 y otro monto = 212, la idea es que coloque en la hoja2 en la columna A solo los montos que son distintos a 0.
Muchas gracias por tu ayuda
Cedula nombre monto descuento otro monto
11111 jose 212 0 212
Alex5283 te dejo el código modificado para que luego de pegar los datos elimine los registros que sean iguales a 0
************************************************
Sub TransponerRegistro()
'Creada por FSerrano el 110518
On Error GoTo error
inicio:
'solicita el numero a buscar
cedula = InputBox("Digite el numero de la cedula a buscar", "Consulta") * 1
'verifica que el valor ingresado sea un numero y si no emite un mensaje con posibilidad de corrección
If Application.WorksheetFunction.IsNumber(cedula) = True Then
'identifica la fila que coincide con el valor buscado
    fila = Application.WorksheetFunction.Match(cedula, Range("A1", Cells(ActiveCell.SpecialCells(xlLastCell).Row, 1)), 0)
    Cells(fila, 1).Activate
'copia los valores que acompañan al registro que satisface la condición
    Range(ActiveCell, Selection.End(xlToRight)).Copy
'pega los datos copiados en la pagina siguiente
    ActiveSheet.Next.Range("a1").PasteSpecial Transpose:=True
'recorre los elementos pegados y elimina los que sean iguales a 0
    Sheets(ActiveSheet.Index + 1).Activate
    While ActiveCell.Value <> ""
        If ActiveCell.Value = 0 Then
            ActiveCell.EntireRow.Delete
        End If
        ActiveCell.Offset(1, 0).Activate
    Wend
    ActiveSheet.Previous.Activate
'rutina para el caso que el valor ingresado no sea un numero
Else
error:
    eleccion = MsgBox("El dato ingresado no es válido o no se encuentra", vbRetryCancel)
    If eleccion = 4 Then
        GoTo inicio
    End If
End If
End Sub
************************************************

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas