 
			
				30/06/2010, 14:39
			
			
			     |  
        |     |    |    Fecha de Ingreso: marzo-2007  Ubicación: Bs.As.  
						Mensajes: 1.103
					  Antigüedad: 18 años, 7 meses Puntos: 88     |        |  
        buscar con marcro en excel        Hola! Pablo. 
Es una lástima que no hayas respondido a ninguna de mis dos preguntas.   
De modo que voy a mostrarte la siguiente variante:  
Código:
  Sub BUSCAR_PRODUCTO()
Dim palabra_a_buscar As String, colH As Range, LR As Long, C As Range
palabra_a_buscar = InputBox("Palabra (o parte de la palabra) a buscar", "Pregunta")
If palabra_a_buscar = "" Then
  MsgBox "Ingresar Datos", vbCritical: Exit Sub
End If
Application.ScreenUpdating = False
Set colH = [H3]: Set C = [a2]
If Not IsEmpty(colH) Then Set colH = Range("H" & Rows.Count).End(xlUp).Offset(1)
LR = Range("A" & Rows.Count).End(xlUp).Row
Do Until C Is Nothing
If C.Row > LR Then Exit Do
If InStr(C, palabra_a_buscar) = 0 Then _
  Set C = Range(C, "A" & LR).Find(What:=palabra_a_buscar, _
  LookIn:=xlValues, LookAt:=xlPart, SearchDirection:=xlNext)
 
If Not C Is Nothing Then
  Union(Cells(C.Row, "C"), Cells(C.Row, "E")).Copy colH
  Set colH = colH.Offset(1)
End If
Set C = C.Offset(1)
Loop
Application.ScreenUpdating = True
MsgBox "Búsqueda finalizada", vbOKOnly, "Final"
End Sub
   
Como observarás: este código es mucho más eficiente que el que mostraras puesto que no requiere recorrer -una a una- las celdas de la columna A.   
Por otro lado y mediante: 
Cells(C.Row, "C") 
Cells(C.Row, "E") 
estoy copiando el contenido de las columnas "C" y "E".   
Entonces advertirás que es muy sencillo incorporar o quitar columnas. 
Saludos, Cacho.             
					
						Última edición por mrocf; 02/07/2010 a las 13:13           |