Excel - Macro que recorra una columna si encuentra un nombre de hoja, se vaya a esa hoja, y así sucesivamen

 
Vista:
sin imagen de perfil
Val: 3
Ha aumentado su posición en 10 puestos en Excel (en relación al último mes)
Gráfica de Excel

Macro que recorra una columna si encuentra un nombre de hoja, se vaya a esa hoja, y así sucesivamen

Publicado por Luis (2 intervenciones) el 22/02/2019 17:00:46
Estimados Master en Excel VBA
Necesito macro que recorra cada celda de una columna (A), y al momento de encontrar un dato (que es el nombre de la hoja de ese libro) se vaya a esa hoja, y si la hoja no existe, que me de un mensaje.
Yo tengo una, pero no recorre, tengo que estar agregando una macro por cada hoja nueva que se agregue, ejecutando una macro que llame (Call) a las otras macros.
Esto es lo que tengo:

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Sub DAAP01CP()
 
 
Sheets("Redes Aéreas").Select
Range("A1").Select
 
 
On Error GoTo error_hoja
Dim x As String
x = [A3].Value
Sheets(x).Select
 
Range("A5").Select
Range("A5").CurrentRegion.Select
Selection.Copy
Sheets("DetalleCompras").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
 
 
error_hoja:
'MsgBox "No existe la hoja"
 
End Sub
 
Sub DAAP01SP()
 
Sheets("Redes Aéreas").Select
Range("A1").Select
 
On Error GoTo error_hoja
Dim x As String
x = [A4].Value
Sheets(x).Select
'Exit Sub
 
Range("A5").Select
Range("A5").CurrentRegion.Select
Selection.Copy
Sheets("DetalleCompras").Select
Range("A1").End(xlDown).Select
ActiveCell.Offset(1, 0).Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
 
error_hoja:
'MsgBox "Una de las Hojas NO EXISTE"
Sheets("ResumenCompras").Select
 
End Sub
 
Sub DAAP02()............y así sucesivamente con muchas hojas y otras que se irán generando.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Andres Leonardo
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Macro que recorra una columna si encuentra un nombre de hoja, se vaya a esa hoja, y así sucesivamen

Publicado por Andres Leonardo (1583 intervenciones) el 22/02/2019 18:34:57
Primero decirte que la estructura no es la adecuada,... el nombre deberia ser una columna y listo.... pero bueno..........

para recorrer las hojas de tu libro solo con esto


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
31
32
33
34
35
36
37
38
39
40
41
Recorre todas las hojas....
 
 
Sub CadaHoja()
'Se declara la variable Hoja como objecto
Dim Hoja As Object
For Each Hoja In ThisWorkbook.Sheets
    MsgBox "La hoja " & Hoja.Index & " Se llama " & Hoja.Name, vbInformation, "Nombre de Hojas "
  revisaHOJA(Hoja.Name)
Next Hoja
End Sub
 
 
'a tu proceso le cambiaria eso
'ojo a esto no se la logica que tienes.. me imagino que habra una hoja central que acumula lo que estas copiando.....  etc etc ... si subes un ejemplo con valores ficticios de como lo tienes  y como debe quedar con gusto
 
Sub revisaHOJA( nombreHoja as string )
 
Sheets(nombreHoja).Select
Range("A1").Select
 
On Error GoTo error_hoja
Dim x As String
x = [A4].Value
Sheets(x).Select
'Exit Sub
 
Range("A5").Select
Range("A5").CurrentRegion.Select
Selection.Copy
Sheets("DetalleCompras").Select
Range("A1").End(xlDown).Select
ActiveCell.Offset(1, 0).Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
 
error_hoja:
'MsgBox "Una de las Hojas NO EXISTE"
Sheets("ResumenCompras").Select
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 3
Ha aumentado su posición en 10 puestos en Excel (en relación al último mes)
Gráfica de Excel

Macro que recorra una columna si encuentra un nombre de hoja, se vaya a esa hoja, y así sucesivamen

Publicado por Luis (2 intervenciones) el 22/02/2019 18:50:19
Gracias Andres por contestar....exactamente lo que tu dices, cada vez que abra una de las hojas, se copia un rango lo copia en otra hoja, luego el siguiente lo copia y pega debajo de dicha hoja acumulativa, después hago una dinámica para que los productos que se repitan los sume.
Probare esa secuencia que me envías y te comento.

Adjunte el archivo, en la hoja llamada "Redes Aéreas" donde esta la columna A donde estarán los nombres de las hojas, como no soy un experto en programación, tuve que hacer una macro por cada hoja que agreguen. como te comentaba, necesito que habrá cada hoja de esa lista, copie un rango y los pegue en la hoja "DetalleCompras" independiente si colocan todas las hojas en la lista o no.

Saludos y de antemano muchas gracias por tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar