Buscar con un dato y copiar filas enteras que lo contengan

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.

1 Respuesta

Respuesta
2

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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas