Foros del Web » Soporte técnico » Ofimática »

buscar con marcro en excel

Estas en el tema de buscar con marcro en excel en el foro de Ofimática en Foros del Web. hola tengo un codigo que busca un campo atravez de un input Código: Sub BUSCAR_PRODUCTO() On Error Resume Next palabra_a_buscar = LCase(InputBox("Palabra (o parte de ...
  #1 (permalink)  
Antiguo 25/06/2010, 07:28
 
Fecha de Ingreso: octubre-2005
Mensajes: 129
Antigüedad: 18 años, 6 meses
Puntos: 0
De acuerdo buscar con marcro en excel

hola tengo un codigo que busca un campo atravez de un input

Código:
Sub BUSCAR_PRODUCTO()
On Error Resume Next

palabra_a_buscar = LCase(InputBox("Palabra (o parte de la palabra) a buscar", "Pregunta"))
If palabra_a_buscar = "" Then
MsgBox "Ingresar Datos", vbCritical
Else
Range("A2").Select
Do While Not IsEmpty(ActiveCell)
    If InStr(LCase(ActiveCell), palabra_a_buscar) > 0 Then
        celda = ActiveCell.Address
        Range("h3").Select
        Do While Not IsEmpty(ActiveCell)
            ActiveCell.Offset(1, 0).Select
        Loop
        ActiveCell = Range(celda).Offset(0, 2)
        Range(celda).Select
    End If
    ActiveCell.Offset(1, 0).Select
Loop
mensaje = MsgBox("Búsqueda finalizada", vbOKOnly, "Final")
End If
Range("H2").Activate
End Sub
pero no se como hacer para que me busque mas campo del registro

__________________
Pablo Baez
  #2 (permalink)  
Antiguo 25/06/2010, 10:16
Avatar de Monimo  
Fecha de Ingreso: noviembre-2007
Ubicación: Mexico Df
Mensajes: 742
Antigüedad: 16 años, 4 meses
Puntos: 69
Respuesta: buscar con marcro en excel

es decir quieres varios inputs del mismo registro?
__________________
La verdad es que lo que no quisiera dejar de hacer nunca (a parte de comer) es programar
  #3 (permalink)  
Antiguo 25/06/2010, 11:00
 
Fecha de Ingreso: octubre-2005
Mensajes: 129
Antigüedad: 18 años, 6 meses
Puntos: 0
De acuerdo Respuesta: buscar con marcro en excel

no, es como el metodo buscar , pero en macro, este codigo me trae una colunma yo quiero mas de una colunma como resultado
__________________
Pablo Baez
  #4 (permalink)  
Antiguo 30/06/2010, 12:42
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
De acuerdo buscar con macro en excel

Hola! Pablo.
La macro que muestras busca a lo largo de la columna A (a partir de la celda A2) el contenido de lo ingresado en el InputBox.

Una vez encontrado el texto, traslada el correspondiente valor de la columna C, a una lista que armas en la columna H, y a partir de la celda H3.

De modo que te falta comentar:

a) ¿Que otras celdas deseas copiar, además de la C?; y
b) ¿Donde deseas que sean copiadas? ¿A la derecha de H?

Saludos, Cacho.
  #5 (permalink)  
Antiguo 30/06/2010, 14:09
 
Fecha de Ingreso: octubre-2005
Mensajes: 129
Antigüedad: 18 años, 6 meses
Puntos: 0
De acuerdo Respuesta: buscar con marcro en excel

si yo modifico esta sentecia

Código:
ActiveCell = Range(celda).Offset(0, 2)
a
ActiveCell = Range(celda).Offset(0, 3)

puedo obtener otro campo del registro, el tema es que que no puedo mostrar mas de dos campo a la vez yo creo que tengo que hacer una especie de arreglo he ir sumando estas opciones pero no se como

gracias por constestar
__________________
Pablo Baez
  #6 (permalink)  
Antiguo 30/06/2010, 14:39
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
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
  #7 (permalink)  
Antiguo 02/07/2010, 12:25
 
Fecha de Ingreso: octubre-2005
Mensajes: 129
Antigüedad: 18 años, 6 meses
Puntos: 0
De acuerdo Respuesta: buscar con marcro en excel

super ,, muchas gracias,, era lo que andaba buscado y disculpa si no respodi bien tus preguntas

gracias
__________________
Pablo Baez
  #8 (permalink)  
Antiguo 02/07/2010, 13:05
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
Respuesta: buscar con marcro en excel

¡¡Me alegra que te haya sido de utilidad!!

Y con referencia a la falta de respuestas te comento: cuando ello ocurre, uno debe "imaginar" aquello que debió ser respondido.

Y como lo imaginado -eventualmente- podría no ajustarse a la realidad, entonces uno termina perdiendo el tiempo al sugerir algo no aplicable, mientras que quien pregunta termina sin una sugerencia adecuada... ¿Se entiende?

Saludos y hasta la próxima.
Cacho.

Etiquetas: excel
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:38.