85 lines
3.1 KiB
HTML
85 lines
3.1 KiB
HTML
<!-- ############### -->
|
|
<!-- 1 -->
|
|
<!-- ############### -->
|
|
<div class="img zoomable">
|
|
<img src="/static/source_imgs/excel/pst_1/vba_index_sub_excel.webp" alt="">
|
|
</div>
|
|
<p>
|
|
El objetivo de esta <a class="link" data-bs-toggle="modal" data-bs-target="#subrutina">subrutina</a>
|
|
simple pero muy útil, generar un índice de todas las hojas que hay en el
|
|
archivo y a su vez a cada hoja colocarle el hipervínculo que te mande a la hoja principal de índices.
|
|
</p>
|
|
<p>
|
|
Para el uso de la sibrutina debes a agregar una hoja nueva de cálculo en tu archivo de excel que quieres indexar,
|
|
esa hoja nueva debe estar completamente vacia y tener la primera posición de izquierda a derecha, dejas esa hoja
|
|
activa (Imágen A), posteriormente abres el editor de código de <a class="link" data-bs-toggle="modal"
|
|
data-bs-target="#vba"> Visual
|
|
Basic for Applications (VBA) </a>, una vez dentro, en un módulo pegas el código de abajo y lo ejecutas.
|
|
</p>
|
|
<p>
|
|
<b>Ejemplo: <br>Imagen A:</b>
|
|
</p>
|
|
<div class="img zoomable">
|
|
<img src="/static/source_imgs/excel/pst_1/img_a.png" alt="Imagen A" class="zoom">
|
|
</div>
|
|
<p>
|
|
<b>Imágen B:</b>
|
|
</p>
|
|
<div class="img zoomable">
|
|
<img src="/static/source_imgs/excel/pst_1/img_b.png" alt="Imagen B" class="zoom">
|
|
</div>
|
|
|
|
{% set var1 %}
|
|
Sub asignar_link_hoja_mismo_libro()
|
|
' Declaración de las variables
|
|
Dim o As Object
|
|
Dim th, h As Integer
|
|
Dim lr As Long
|
|
Dim rng As Range
|
|
|
|
' obtener el número total de hojas de excel en el archivo abierto
|
|
th = Sheets.Count
|
|
|
|
' en la hoja 1, celda A1 se le asigna el valor de "índice hojas"
|
|
Sheets(1).Cells(1, 1).Value = "Índice Hojas"
|
|
|
|
' En esta ciclo se recorre el total de hojas
|
|
For h = 1 To th
|
|
' empezamos la iteración de hojas a partir del indice 2 para obtener el nombre de las hojas.
|
|
If h > 1 Then
|
|
' el nombre de la hoja se coloca en la hoja 1 a partir de la celda 2
|
|
Sheets(1).Cells(h, 1).Value = Sheets(h).Name
|
|
' se selecciona la hoja para poder asignar el hipervínculo a la hoja 1
|
|
Sheets(h).Activate
|
|
' colocación del hipervínculo en la hoja activa
|
|
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="" & Sheets(1).Name & "!A1" & "", TextToDisplay:="Indice"
|
|
End If
|
|
Next h
|
|
|
|
' Procesos en la hoja 1
|
|
Sheets(1).Activate
|
|
' del ciclo anterior obtenemos la última fila con registro
|
|
lr = Sheets(1).Cells(1048576, 1).End(xlUp).Row
|
|
' establecemos el rango donde se colocaron los nombres de las hojas del archivo de excel
|
|
Set rng = Sheets(1).Range(Cells(2, 1), Cells(lr, 1))
|
|
|
|
'en este ciclo creamos los hipervínculos
|
|
For Each o In rng
|
|
' creamos el indice por cada nombre de hoja con su respectiva hoja
|
|
Cells(o.Row, o.Column).Hyperlinks.Add Anchor:=Cells(o.Row, o.Column), Address:="", SubAddress:="'" & o.Value & "'!A1", TextToDisplay:=o.Value
|
|
Next o
|
|
' notificación al usuario del término del programa
|
|
MsgBox "Se ha creado el índice de hojas de forma exitosa", vbOKOnly, "INDICE HOJAS"
|
|
|
|
End Sub
|
|
{% endset %}
|
|
|
|
{% with codigo=var1.strip(), isEditable="false" %}
|
|
{% include 'components/copy-code.html' %}
|
|
{% endwith %}
|
|
|
|
|
|
|
|
|
|
|