Ver Mensaje Individual
  #6 (permalink)  
Antiguo 30/06/2010, 14:39
Avatar de mrocf
mrocf
 
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
De acuerdo 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