Vous êtes sur la page 1sur 4

Inicio >

Tecnologa 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 informacin de las cuatro columnas es decir la fila entera, necesito copiarla y pegarla en la Hoja2 con la misma distribucin
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 informacin , es decir no filtra, este es el
cdigo 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 solucin: 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

Vous aimerez peut-être aussi