Excel - Ayuda para modificar una macro

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

Ayuda para modificar una macro

Publicado por elbores (4 intervenciones) el 09/06/2018 21:32:52
Hola, que tal? Resulta que tengo la siguiente macro que me crea o refresca un índice de todas las hojas de un libro excel con un hipervínculo a esta y desde esta al índice.
Ese indice como podéis ver en el codigo se crea en la columna 1.

Lo que quiero es agregarle una segunda columna (al indice creado) donde se me devuelva el valor de una celda concreta que tengo nombrada como "Precio" en cada hoja .
He intentado meterle una nueva linea al bucle pero es que hace montonazo que no toco Excel y no hay manera de atinar con la referencia correcta para devolver en cells(fila, 2) ese dato de las hojas (algun "" o `se me escapa)

Gracias.

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
54
Sub crearIndice()
 
'**************************************
'PASO 1: Crear o limpiar la hoja Indice
'**************************************
Dim hoja As Worksheet
On Error Resume Next
Set hoja = Worksheets("Indice")
On Error GoTo 0
 
If hoja Is Nothing Then
'La hoja Indice no existe - Crearla en primera posición
Worksheets.Add(Before:=Worksheets(1)).Name = "Indice"
Else
'La hoja Indice ya existe - Limpiarla
Worksheets("Indice").Cells.Clear
End If
 
'Insertar título a la hoja Indice
Worksheets("Indice").Range("A1").Value = "Indice"
 
'************************************************
'PASO 2: Recorrer las hojas creando hipervinculos
'************************************************
Dim fila As Long
Dim columna As Long
Dim vinculoRegreso As String
 
fila = 2
'Celda donde se colocará el hipervinculo de regreso al indice
vinculoRegreso = "C1"
 
For Each hoja In Worksheets
If hoja.Name <> "Indice" Then
'Crear hipervinculo en hoja Indice
With Worksheets("Indice")
.Hyperlinks.Add Anchor:=.Cells(fila, 1), _
Address:="", _
SubAddress:="'" & hoja.Name & "'!A1", _
TextToDisplay:=hoja.Name
End With
 
'Crear hipervinculo en hoja destino hacia Indice
With hoja
.Hyperlinks.Add Anchor:=.Range(vinculoRegreso), _
Address:="", _
SubAddress:="Indice!A1", _
TextToDisplay:="Indice"
End With
fila = fila + 1
End If
Next
 
End Sub
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 Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Ayuda para modificar una macro

Publicado por Antoni Masana (2562 intervenciones) el 10/06/2018 16:20:07
Sin ver la estructura del libro es difícil ver ayudarte y entender que pretendes hacer.

Saludos,
\\//_
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: 7
Ha aumentado su posición en 3 puestos en Excel (en relación al último mes)
Gráfica de Excel

Ayuda para modificar una macro

Publicado por elbores (4 intervenciones) el 10/06/2018 16:53:27
Estoy haciendo pruebas sobre un libro de pruebas que descargue junto con la macro.

Es un libro con hojas ENERO, FEBRERO,... , DICIEMBRE

La macro adjunta en el libro (la del post) crea una hoja nueva de nombre Índice con la columna 1 con los nombres de las hojas del libro
ENERO
FEBRERO
MARZO
....
DICIEMBRE

Yo lo que quiero es crear una segunda columna en ese índice que me devuelva de cada hoja una celda concreta que he nombrado en cada una de esas hojas como 'precio' y que contiene un valor numérico. Es como devolver una celda determinada pero sin tener que obligar a que esa celda sea una determinada siempre en cada hoja(que pueda estar en D3 como en F3 que para eso la he nombrado)
Cuando tenga disponible el ordenador os subo la hoja de prueba.

Es simplemente introducir una línea en el bloque pero es que no atino. Creo que no se poner bien la llamada a esa celda.
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: 7
Ha aumentado su posición en 3 puestos en Excel (en relación al último mes)
Gráfica de Excel

Ayuda para modificar una macro

Publicado por elbores (4 intervenciones) el 10/06/2018 23:26:10
Os adjunto el libro.

En las hojas Enero y Febrero he creado dos celdas con nombre precio con valores numéricos 27 y 34 respectivamente.

Quiero que esos valores estén en la hija indice en la columna 2. Osea en B2 el valor de la celda precio de la hoja Enero, en B3 el valor de la celda precio de la hija febrero.
A mano se hacerlo con la función indirecto pero me gustaría integrarlo en la macro ya sea incluyendo una linea en el bucle o creando otro procedimiento en la misma macro.
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: 7
Ha aumentado su posición en 3 puestos en Excel (en relación al último mes)
Gráfica de Excel

Ayuda para modificar una macro

Publicado por Raul (4 intervenciones) el 11/06/2018 01:54:21
He cambiado el bucle a 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
'************************************************
'PASO 2: Recorrer las hojas creando hipervinculos
'************************************************
Dim fila As Long
Dim columna As Long
Dim vinculoRegreso As String
Dim valor As Long
 
fila = 2
columna = 2
'Celda donde se colocará el hipervinculo de regreso al indice
vinculoRegreso = "C1"
 
For Each hoja In Worksheets
    With hoja
       valor = .Range("A5")
    End With
 
 
    If hoja.Name <> "Indice" Then
        'Crear hipervinculo en hoja Indice
        With Worksheets("Indice")
            .Hyperlinks.Add Anchor:=.Cells(fila, 1), _
            Address:="", _
            SubAddress:="'" & hoja.Name & "'!A1", _
            TextToDisplay:=hoja.Name
            Cells(fila, columna) = valor
 
        End With

Solo necesito que en lugar de A5 o cq celda me devuelva la que he nombrado como Precio... No lo consigo!
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