Utilizar Find en macros o procedimiento similar
Necesitaría que me ayudarais a buscar los distintos nombres de una persona, copiar toda la fila donde aparece, pegarla en otra hoja. Esto con cada nombre que se encuentre igual al indicado por nosotros.
Yo lo que he intentado son dos formas pero ninguna me funciona:
Do
Sheets(1).Select
Set c = Cells.Find(ComboBox1.Value, LookIn:=xlValues)
c.Select
c.EntireRow.Select
Selection.Copy
Sheets(2).Select
Cells(i, 1).Select
ActiveSheet.Paste
i = i + 1
ActiveCell.Offset(1, 0).Activate
Loop While c.Value <> ""
Esto me crea un bucle infinito y nada, no consigo solucionarlo para que funcione bien. Otra forma que he intentado es con un procedimiento buscar que me he hecho yo, pero también me da error:
Do
Sheets(1).Select
Casilla = Buscar("Hoja1", inicial, combox1.Value)
Range(Casilla).Select
ActiveCell.EntireRow.Select
Selection.Copy
Sheets(2).Select
Cells(i, 1).Select
ActiveSheet.Paste
i = i + 1
ActiveSheet.Offset(1, 0).Activate
inicial = ActiveCell.Offset(1, 0).Select
Loop While Range(Casilla).Address = "A1"
Function Buscar(Hoja As String, Casilla_Inicial As String, SDM As String) As String
Dim posicion As String
Worksheets(Hoja).Activate
ActiveSheet.Range(Casilla_Inicial).Activate
Do While (ActiveCell.Value <> SDM) And (ActiveCell.Value <> "")
ActiveCell.Offset(1, 0).Activate
Loop
If ActiveCell.Value = SDM Then
Buscar = ActiveCell.Address
Else
Buscar = "A1" 'no encontrado, posiciona en A1
End If
End Function
Por favor ayuda! Guiarme un poco para poder continuar please!
Yo lo que he intentado son dos formas pero ninguna me funciona:
Do
Sheets(1).Select
Set c = Cells.Find(ComboBox1.Value, LookIn:=xlValues)
c.Select
c.EntireRow.Select
Selection.Copy
Sheets(2).Select
Cells(i, 1).Select
ActiveSheet.Paste
i = i + 1
ActiveCell.Offset(1, 0).Activate
Loop While c.Value <> ""
Esto me crea un bucle infinito y nada, no consigo solucionarlo para que funcione bien. Otra forma que he intentado es con un procedimiento buscar que me he hecho yo, pero también me da error:
Do
Sheets(1).Select
Casilla = Buscar("Hoja1", inicial, combox1.Value)
Range(Casilla).Select
ActiveCell.EntireRow.Select
Selection.Copy
Sheets(2).Select
Cells(i, 1).Select
ActiveSheet.Paste
i = i + 1
ActiveSheet.Offset(1, 0).Activate
inicial = ActiveCell.Offset(1, 0).Select
Loop While Range(Casilla).Address = "A1"
Function Buscar(Hoja As String, Casilla_Inicial As String, SDM As String) As String
Dim posicion As String
Worksheets(Hoja).Activate
ActiveSheet.Range(Casilla_Inicial).Activate
Do While (ActiveCell.Value <> SDM) And (ActiveCell.Value <> "")
ActiveCell.Offset(1, 0).Activate
Loop
If ActiveCell.Value = SDM Then
Buscar = ActiveCell.Address
Else
Buscar = "A1" 'no encontrado, posiciona en A1
End If
End Function
Por favor ayuda! Guiarme un poco para poder continuar please!
1 Respuesta
Respuesta de leone
1