Insertar imagen en una UserForm que puede cambiar

Estoy elaborando un userform en donde quiero colocar algunas imágenes que se ligarán a precios y descripcionesel código que tengo es:
If ComboBox2.Text = "Jorge Pablo" Then
Image1.Picture = LoadPicture("C:\Documents and Settings\Escritorio\EXCEL\fotos\37335.gif")
Nombret.Text = " Jorge Pablo"
Puestot.Text = "Jefe de Departamento"
Telt.Text = "12345678"
Ext.Text = "Ext:1234"
CorreoT.Text = "[email protected]"
Areat.Text = "Eléctrico"
End If
Y funciona a la perfección pero cuando el ComboBox2.Text tenga el nombre de otra persona la imagen tendrá que ser diferente... Y estamos de acuerdo que cambiando el nombre de la foto funcionaria, pero cuando comparto la carpeta no encuentra la imagen y muestra un error por que la otra maquina manega "D:\Documents and Settings por lo que me gustaría saber una opción para que no tenga que escribir la dirección tan larga, tal vez usando un "@\fotos\37335.gif" o algo por el estilo...
No se si me explique pero de no hacerlo todos los días reviso el sitio para aclarar mi pregunta

1 respuesta

Respuesta
1
Pienso que podrías obtener el disco del sistema (el disco donde está instalado el sistema operativo) que es el mismo donde se encuentra el directorio Documents and settings.
Con este disco, puedes cambiar tu código para que te funcione en cualquier equipo. Algo como:
'Primero debes declarar la función
Private Declare Function GetSystemDirectory Lib "kernel32" _
Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, _
ByVal nSize As Long) As Long
===============
'Luego en tu código usas esto para obtener el disco
Dim SystemPath As String
SystemPath = String(145, Chr(0))
SystemPath = Left(SystemPath, GetSystemDirectory(SystemPath, Len(SystemPath)))
disco = Left(SystemPath, 3)
================
'Finalmente puedes usar
Image1.Picture = LoadPicture(disco & "Documents and Settings\Escritorio\EXCEL\fotos\37335.gif")
Hola:
Espero te encuentres bien, disculpa pero ya ingrese tu código y me marca un error en:
Dim SystemPath As String
SystemPath = String(145, Chr(0))
SystemPath = Left(SystemPath, GetSystemDirectory(SystemPath, Len(SystemPath)))
disco = Left(SystemPath, 3)  
En = String(145, Ch(0)) específicamente en el numero 145, dice "error de compilación. El procedimiento externo no es Válido "
No se por que poner el 145, en lo demás no me marca nada mal, solo es eso gracias por tu tiempo...
Este valor es un parámetro necesario para poder usar luego la función GetSystemDirectory, quizás si lo cambias a 255 podría funcionar.
Es importante que esta función se haya declarado en la parte superior del módulo donde tienes este código.
Para mayor información de esta función revisa:
http://allapi.mentalis.org/apilist/GetSystemDirectory.shtml
Hola soy yo de nuevo y mejor te pongo mi ejemplo para que lo veas y por favor me digas que hice mal...
'declarar la función
Private Declare Function GetSystemDirectory Lib "kernel32" _
Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, _
ByVal nSize As Long) As Long
'obtener el disco
Dim SystemPath As String
SystemPath = String(255, Ch(0))
SystemPath = Left(SystemPath, GetSystemDirectory(SystemPath, Len(SystemPath)))
disco = Left(SystemPath, 3)
Public ubica As String
Public control As Integer
Public filalibre As Integer
Dim dato As String
Private Sub Crear_Click()
If ComboBox2.Text = "Igartua Jorge Pablo" Then
Nombret.Text = "Igartua Jorge Pablo"
Puestot.Text = "Jefe de Departamento"
Telt.Text = "12345678"
Ext.Text = "Ext:7412"
CorreoT.Text = "[email protected]"
Areat.Text = "Eléctrico"
Image1.Picture = LoadPicture(disco & "DocumentsandSettings\fotos personal\37335.gif")
End If
El error sigue en el mismo lugar...
Gracias ...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas