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
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.
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 e 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 columna con 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
No hay comentarios.:
Publicar un comentario