Busca, copia y pega.
Hola a todos, tengo el siguiente código que busca datos de una lista especificada, los copia y los pega en otro lugar determinado:
Sub Busca()
Dim n As Range
palabra_a_buscar = InputBox("Nro. De cuenta", "BUSCADOR")
'Busca de la hoja especificada'
Sheets("Clientes").Select
Set n = Cells.Find(What:=palabra_a_buscar)
If n Is Nothing Then
MsgBox "Cliente inexistente."
Else
Range(n.Address).Select
End If
Set n = Nothing
'Nos situamos en la fila activa
x = ActiveCell.Row
'Nos situamos en la columna activa
y = ActiveCell.Column
'Marcamos en la celda y cuantas columas queremos copiar
z = Cells(x, y + 1).Address & ":" & Cells(x, y).Address
Range(z).Copy
'Seleccionamos la hoja y la celda para pegar
Sheets("Hoja1").Select
Range("h5").Select
'Buscamos la primera fila vacia en esa columna
Do While Not IsEmpty(ActiveCell)
'Nos situamos en ella
ActiveCell.Offset(1, 0).Select
'Esto repite la busqueda hasta que encuentra la fcelda vacía
Loop
'Pegamos la fila copiada anteriormente
ActiveCell.PasteSpecial
End Sub
Para una carga de datos más rápida lo que necesitaría es hacer lo mismo pero sin tener que llamar al buscador mediante un botón o un atajo de teclas. Podrían ser dos opciones:
1-Que el buscador se abra cuando se selecciona una celda de un rango determinado
2-Que no sea necesario el buscador y cuando ingrese un Nº de cliente me pegue el nombre en la celda de al lado.
Desde ya, nuevamente gracias por su invalorable ayuda.
Sub Busca()
Dim n As Range
palabra_a_buscar = InputBox("Nro. De cuenta", "BUSCADOR")
'Busca de la hoja especificada'
Sheets("Clientes").Select
Set n = Cells.Find(What:=palabra_a_buscar)
If n Is Nothing Then
MsgBox "Cliente inexistente."
Else
Range(n.Address).Select
End If
Set n = Nothing
'Nos situamos en la fila activa
x = ActiveCell.Row
'Nos situamos en la columna activa
y = ActiveCell.Column
'Marcamos en la celda y cuantas columas queremos copiar
z = Cells(x, y + 1).Address & ":" & Cells(x, y).Address
Range(z).Copy
'Seleccionamos la hoja y la celda para pegar
Sheets("Hoja1").Select
Range("h5").Select
'Buscamos la primera fila vacia en esa columna
Do While Not IsEmpty(ActiveCell)
'Nos situamos en ella
ActiveCell.Offset(1, 0).Select
'Esto repite la busqueda hasta que encuentra la fcelda vacía
Loop
'Pegamos la fila copiada anteriormente
ActiveCell.PasteSpecial
End Sub
Para una carga de datos más rápida lo que necesitaría es hacer lo mismo pero sin tener que llamar al buscador mediante un botón o un atajo de teclas. Podrían ser dos opciones:
1-Que el buscador se abra cuando se selecciona una celda de un rango determinado
2-Que no sea necesario el buscador y cuando ingrese un Nº de cliente me pegue el nombre en la celda de al lado.
Desde ya, nuevamente gracias por su invalorable ayuda.
1 respuesta
Respuesta de jerryeagle
1