jueves, 16 de abril de 2020

Hipervínculos - Vínculos

En esta entrada veremos cómo dejar hipervínculos para acceder a sitios web. También aprenderemos a vincular nuestros datos en Excel con otros archivos (imágenes, pdf, etc) para ser llamados desde otros procesos.

CASO 1:
Desde una hoja Excel, llenaremos una tabla de temas que vincularemos a sitios web.

Se trabajará con un formulario o Userform, donde pegaremos la dirección del sitio en un control TextBox. Luego al guardar el contenido de los controles en la hoja, en la col E además le insertaremos el hipervínculo con el siguiente código.

La instrucción será: nombre_de_hoja.HYPERLINKS.ADD

Private Sub CommandButton1_Click()   'GUARDAR
With Sheets("UF-Sitios")
    x = .Range("A" & Rows.Count).End(xlUp).Row + 1
    .Range("A" & x) = Application.WorksheetFunction.Max(.Range("A:A")) + 1
    .Range("B" & x) = ComboBox1
    .Range("C" & x) = ComboBox2
    .Range("D" & x) = TextBox1
    .Range("E" & x) = TextBox2
    'hipervínculo en celda col E
    .Hyperlinks.Add Anchor:=.Range("E" & x), Address:=.Range("E" & x).Value, _
        TextToDisplay:="ver sitio"
End With
'limpia controles para un nuevo registro
ComboBox1.ListIndex = -1: ComboBox2.ListIndex = -1
TextBox1 = "": TextBox2 = ""
ComboBox1.SetFocus
End Sub

CASO 2:
En una hoja Excel tendremos una tabla de productos, con todos sus datos en diferentes columnas añadiendo una columna para el nombre de la imagen asociada y otra para la ruta de esa imagen vinculada.
Esta opción será de utilidad para crear catálogos, recetarios y todos aquellos informes donde además de datos debiera mostrarse una imagen relacionada.
En el formulario tendremos 2 controles para la imagen: un TextBox para guardar la ruta completa y un control IMAGE donde mostrar la imagen.

El botón BUSCAR nos permitirá navegar por el equipo para encontrar la imagen a vincular. Se puede filtrar la búsqueda indicando algunas extensiones como jpg o bmp.
Nota: no será posible presentar un archivo 'png' en un control Image.

Para la búsqueda utilizaremos el método GETOPENFILENAME.
Para separar solo el nombre del archivo la instrucción DIR.
Para obtener solo la ruta se extrae del texto completo solo la parte hasta el inicio del nombre del archivo con las funciones: LEFT INSTR

El código completo del botón BUSCAR es el siguiente:
Private Sub CommandButton11_Click()
mifoto = Application.GetOpenFilename("Formato(*.jpg; *.bmp),*.jpg; *.bmp", Title:="Selecciona tu imagen")
'si la variable está vacía significa que cancelamos la ventana de diálogo
If mifoto = False Then
    TextBox25 = ""
Else
    Image1.Picture = LoadPicture(mifoto)
    nbreFoto = Dir(mifoto)     'nbre de la foto
    rutax = Left(mifoto, InStr(1, mifoto, nbreFoto) - 1)
    TextBox25 = rutax
End If
End Sub

Al GUARDAR, además del contenido de los controles se guardará el nombre del archivo guardado en la variable (nbreFoto) que se declara al inicio del Userform para que pueda ser utilizada en las 2 subrutinas
Esto se logra con la instrucción:  Dim nbreFoto As String  


Dim hoi                    'nbre de la hoja declarada en el evento Initialize
Dim nbreFoto As String     'nbre de la foto

Private Sub CommandButton1_Click()   'GUARDAR
'completo col datos fijos
ini = hoi.Range("A2").End(xlDown).Row + 1
hoi.Range("A" & ini) = ComboBox1
hoi.Range("B" & ini) = TextBox1

'guarda nbre y ruta de la imagen
hoi.Range("E" & ini) = nbreFoto
hoi.Range("F" & ini) = TextBox25

'limpia el UF para un nuevo ingreso
ComboBox1.ListIndex = -1
TextBox1 = "": TextBox25 = ""
Image1.Picture = LoadPicture("")
ComboBox1.SetFocus
End Sub

El guardar imágenes asociadas a una base de productos nos permitirá armar luego un catálogo, con otro proceso que las ubicará y dimensionará en las celdas correspondientes. Por ejemplo:


Descargar el libro con formularios completos desde aquí.

Ver VIDEOS 32  y  33.


No hay comentarios.:

Publicar un comentario