You are on page 1of 4

Inicio >

Tecnología e Internet > Software y aplicaciones > Microsoft Excel
Buscar con un dato y copiar filas enteras que
lo contengan

Respuesta de
luismondelo
a
zoso_zep
28/07/2012
Usuario
Hola, solicito ayuda, de una matriz(A5:D20,Tab_Facturas) con datos repetidos (que está en la Hoja1), necesito buscar todas las filas
que tengan por ejemplo el numero dos que se encuentran en la columna "C" que es el N°. de vendedor, la columna "A" contiene el N°.
de Factura, la columna "B" la fecha y la columna "D" el importe.
Esta información de las cuatro columnas es decir la fila entera, necesito copiarla y pegarla en la Hoja2 con la misma distribución
mediante una macro.
Nota aclaratoria: HIce una macro con filtro de excel, y funciona genial,pero el problema que tengo es que cuando corro la macro en
otra computadora diferente a la mia (he probado en varias) no funciona y me copia toda la información , es decir no filtra, este es el
código que tengo

Sub BuscarVendedor2()
Application.ScreenUpdating = False
Sheets("Hoja1").Select
Range("A5:D5").Select
Selection.AutoFilter Field:=3, Criteria1:="2"
CopiarRegistros
Sheets("Hoja2").Select
PegarRegistros
Repetidos
Ordena
Sheets("Hoja1").Select
Range("A5:D5").Select
Selection.AutoFilter
Sheets("Hoja2").Select
Range("A5").Select Application.ScreenUpdating = True
End Sub
******
Sub CopiarRegistros()
Range("A6:D20").Select
Selection.Copy
End Sub
******
Sub PegarRegistros()
Range("A6").Select
ActiveSheet.Paste
End Sub
*******
Sub Repetidos()
Range("A6").Select
Do While Not IsEmpty(ActiveCell)
x = WorksheetFunction.CountIf(Range("A:A"), ActiveCell)
If x > 1 Then
ActiveCell.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
Range("A6").Select
End Sub
***********
Sub Ordena()
Range("A6:M1000").Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal
End Sub
De verdad no se que hacer,gracias por la ayuda

Experto
Hola, te mando mi solución: Ejecuta esta macro y todo el problema solucionado.
Sub prueba22()
'por luismondelo
fila = 2
dato = InputBox("que vendedor buscamos???")
If dato = False Then Exit Sub
Set busca = Sheets("hoja1").Range("c5:c" &
Sheets("hoja1").Range("c65000").End(xlUp).Row).Find(dato, LookIn:=xlValues, lookat:=xlWhole)
If Not busca Is Nothing Then
ubica = busca.Address
Do
Sheets("hoja2").Cells(fila, 1).Value = busca.Offset(0, -2)
Sheets("hoja2").Cells(fila, 2).Value = busca.Offset(0, -1)
Sheets("hoja2").Cells(fila, 3).Value = busca
Sheets("hoja2").Cells(fila, 4).Value = busca.Offset(0, 1)
fila = fila + 1
Set busca = Sheets("hoja1").Range("c5:c" &
Sheets("hoja1").Range("c65000").End(xlUp).Row).FindNext(busca)
Loop While Not busca Is Nothing And busca.Address <> ubica
End If
End Sub


recuerda finalizar y puntuar
un saludo
Usuario
Gracias, por compartir tus conocimientos, quedo solucionado ya lo adaptare a mis necesidades
Saludos cordiales