Jump to content
Sign in to follow this  
Inmortal78

Macro busca datos

Recommended Posts

Buenas tardes, me estoy iniciando en estos menesteres y me siento aun muy novato al caso, tengo u problema con una Macro que necesito realizar la cual me ayude a buscar un dato de 9 caracteres en la columna D (por ej.), y una vez coincidiendo la busqueda me entregue lo que contiene la columna N para irlo metiendo hasta que ya no encuentre mas datos, esto debe de hacerlo en 30 hojas diferentes llamadas Log Enero 2007, Log Febrero 2007 etc, etc.

Share this post


Link to post
Share on other sites

Bucles

Hola todo depende de si quieres buscar en un libro o en varios, y de si estan o no abiertos, te coloco un ejemplo simple que busca en un solo libro en todas las hojas quizas te sea de utilidad

Sub buscar()
Dim h
Dim c
Dim primeradireccion
Dim buscando
Dim contador
Dim resultados() As Variant
Dim i As Long
Dim hojaresultados
'aqui pones lo que deseas buscar
buscando = InputBox("Ingresa el dato a buscar", "Buscador")
If buscando = "" Then
End
End If
'le dices dónde deseas que te ponga los resultados en este caso los pasamos en una nueva hoja creada
hojaresultados = InputBox("Ingresa un nombre para de la hoja nueva dónde se mostrarán los resultados ", "Buscador")
If hojaresultados = "" Then
End
End If
contador = 0
For h = 1 To ActiveWorkbook.Sheets.Count
ActiveWorkbook.Sheets(h).Activate
' puedes personalizar si quieres que te busque dentro de valores, en celda completa o en su contenido puedes vericar la ayuda para más información ejemplo xlpart en lugar de xlwhole
Set c = Range("D:D").Find(buscando, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
primeradireccion = c.Address
Do
contador = contador + 1
'redimensionamos la matriz conservando los resultados anteriores
ReDim Preserve resultados(1 To contador)
Range(c.Address).Activate
resultados(contador) = ActiveCell.Offset(0, 10).Value

Set c = Range("D:D").FindNext(c)
Loop While Not c Is Nothing And c.Address <> primeradireccion
End If
Next
'recuperamos los datos de la variable resultados y los enviamos a una hoja nueva
If contador > 0 Then
ActiveWorkbook.Sheets.Add
Range("A1") = "datos encontrados para: " & buscando
For i = 1 To contador
Cells(i + 1, 1) = resultados(i)
Next
ActiveSheet.Name = hojaresultados
MsgBox "Se encontraron: " & contador & " coincidencias", vbInformation
Else
MsgBox "No hubo coincidencias", vbInformation
End If
End Sub[/CODE]

saludos :)

Ejemplo buscar.zip

Share this post


Link to post
Share on other sites

Gracias mil por tu ayuda never de limon, esta excelente, pero y si quiero buscar cierto dato en un libro externo y que esta cerrado? ah y otra duda, la macro busca lo que le pido pero me muestra sola y unicamente lo que contiene la celda "N", como le hago para que me muestre lo que indica la columna que yo le digo o lo que necesito?.

Saludos

Share this post


Link to post
Share on other sites

Respuesta: Bucles

Este ejemplo es muy bueno neverdelimon1, me gustaria usarlo pero acumular en una sola hoja lo copiado, no en diferentes hojas, agradesco mucho tu ayuda neverdelimon1. Gracias

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

INFORMACIÓN BÁSICA SOBRE PROTECCIÓN DE DATOS

Responsable: Sergio Andrés Celemín

Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.

Legitimación: Consentimiento del interesado.

Destinatarios: Hetzner Online GmbH.

Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso,
rectificación, supresión, oposición y demás derechos legalmente establecidos a
través del email sergio@ayudaexcel.com.

Información adicional: Encontrarás más información en la política de privacidad.

Sign in to follow this  



×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png