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.
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
0