Como buscar datos en diferentes hojas de excel de un mismo archivo
Publicado por Marta Blanco Rodríguez (8 intervenciones) el 25/03/2019 17:14:10
Hola, buenas tardes.
Me gustaría saber si alguien me puede ayudar ya que tengo un problema a la hora de ejecutar una MACRO.
La idea principal es buscar unos determinados datos (en este caso, longitudes) en diferentes hojas de EXCEL (hoja1, hoja2, hoja3...).
Los datos se encuentran en las dos primeras columnas de cada hoja.
He conseguido hacer el siguiente MACRO tomando como ejemplo algunos que encontré por Internet:
Al ejecutar la MACRO me salen los valores SOLO de la primera hoja y me gustaría que, cuando encuentra el primer valor en la primera hoja, saltará al segundo valor y lo buscará en la segunda hoja, cuando lo encuentre, que pase al tercer valor y busque en la tercera hoja y así sucesivamente... Pensé que con el comando GoTo FinDeBusqueda lo conseguiría pero sigue sin salirme.
Muchas gracias de antemano, si me pueden ayudar sería genial ya que es un problema que me urge bastante.
Un saludo.
Me gustaría saber si alguien me puede ayudar ya que tengo un problema a la hora de ejecutar una MACRO.
La idea principal es buscar unos determinados datos (en este caso, longitudes) en diferentes hojas de EXCEL (hoja1, hoja2, hoja3...).
Los datos se encuentran en las dos primeras columnas de cada hoja.
He conseguido hacer el siguiente MACRO tomando como ejemplo algunos que encontré por Internet:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Sub BuscarEnVariasHojas()
Dim Celda As Range, Rango As Range
Dim CeldaAux As Range, RangoAux As Range
Dim Hoja As Worksheet
Set Rango = Hoja1.Range(Cells(2, 1), Cells(2, 1).End(xlDown))
For Each Hoja In ActiveWorkbook.Worksheets
If Hoja.Name <> "Buscar" Then
Hoja.Activate
For Each Celda In Rango
If Celda.Offset(0, 1) <> Empty And Celda.Offset(0, 2) <> Empty Then GoTo FinDeBusqueda
Set RangoAux = Hoja.Range(Cells(2, 1), Cells(2, 1).End(xlDown))
For Each CeldaAux In RangoAux
If Celda = CeldaAux Then
Celda.Offset(0, 1) = CeldaAux.Offset(0, 1)
Celda.Offset(0, 2) = "fila" & CeldaAux.Row & "hoja" & Hoja.Name
GoTo FinDeBusqueda
End If
Next CeldaAux
FinDeBusqueda
Next Celda
End If
Next Hoja
Hoja1.Activate
End Sub
Al ejecutar la MACRO me salen los valores SOLO de la primera hoja y me gustaría que, cuando encuentra el primer valor en la primera hoja, saltará al segundo valor y lo buscará en la segunda hoja, cuando lo encuentre, que pase al tercer valor y busque en la tercera hoja y así sucesivamente... Pensé que con el comando GoTo FinDeBusqueda lo conseguiría pero sigue sin salirme.
Muchas gracias de antemano, si me pueden ayudar sería genial ya que es un problema que me urge bastante.
Un saludo.
Valora esta pregunta


0