INSERTAR VARIAS IMÁGENES CON "forms.image"

21/10/2006 - 03:34 por pejelagarto | Informe spam
Kisiera por INSERTAR VARIAS IMÁGENES (10), a partir de una CELDA
($A$1); en diferentes POSICIONES DE UNA HOJA.

Kisiera poder HACER ALGO ASÍ : CÓDIGO1 para IMAGEN1, CÓDIGO 2 para
IMEGEN2,CÓDIGO3 para IMEGEN3. etc.

Los nombres de las IMÁGENES están en la COLUMNA "A" >
[a1,a2,a3,a4,a5,a6,a7,a8,a9,a10].
Los ARCHIVOS están en la RUTA "C:\excel\"; y se LLAMAN
1,2,3,4,5,6,7,8,9,10 .JPG)

MUCHÍSIMAS GRACIAS DE ANTEMANO.
pd:fELIZ AÑO

== USO EL SIGUIENTE CÓDIGO Private Sub Worksheet_Change(ByVal Target As Range)
If Not Target.Address = "$A$1" Then Exit Sub
Application.ScreenUpdating = False
De_donde = "C:\EXCEL\" & [a1] & ".jpg"
With Me.Image1
If Dir(De_donde) = "" Then Me.Image1.Visible = False: Exit Sub
.Picture = LoadPicture(De_donde)
.PictureSizeMode = fmPictureSizeModeZoom
.Visible = True
End With
End Sub
==
 

Leer las respuestas

#1 Héctor Miguel
21/10/2006 - 04:23 | Informe spam
hola, 'anonimo/a' !

1) el codigo que estas usando... 'asume' el uso de UN -solo y unico- CONTROL DE IMAGEN
cuya figura CAMBIA SEGUN EL CONTENDIO DE LA CELDA 'A1' de la hoja donde se encuentra
[por eso se utiliza el evento '_change' en el modulo de codigo de 'esa' hoja]

2) para poder tener VARIAS IMAGENES EN DIFERENTES POSICIONES EN UNA HOJA...
[necesitaras x lo -] INCRUSTA VARIOS OBJETOS ["forms.image"] EN LAS DIFERENTES POSICIONES

3) si [al fin de cuentas] los nombres de las imagenes son fijos [segun comentas: 1, 2, 3... 10]
y no van a 'cambiar' [independientemente de que los numeros esten en cada celda del rango 'A1:A10']...
podrias prescindir de las referencias al rango y usar 'directamente' los numeros/nombre de las imagenes
y utilizar una macro NO en modulos de codigo y/o eventos por cambios en las celdas... sino en un modulo 'general'

4) prueba con algo +/- como lo siguiente [suponiendo que los nombres de los controles son -tambien- consecutivos]:

Sub Cargar_n_Imagenes()
Dim n As Byte, De_donde As String
De_donde = "c:\excel\"
For n = 1 To 10
With ActiveSheet.OLEObjects("image" & n).Object
.Picture = LoadPicture(De_donde & n & ".jpg")
.PictureSizeMode = fmPictureSizeModeZoom
End With
Next
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ la consulta original __
Kisiera por INSERTAR VARIAS IMAGENES (10), a partir de una CELDA ($A$1); en diferentes POSICIONES DE UNA HOJA.
Kisiera poder HACER ALGO ASI : CODIGO1 para IMAGEN1, CODIGO 2 para IMEGEN2,CODIGO3 para IMEGEN3. etc.
Los nombres de las IMAGENES estan en la COLUMNA "A" > [a1,a2,a3,a4,a5,a6,a7,a8,a9,a10].
Los ARCHIVOS estan en la RUTA "C:\excel\"; y se LLAMAN 1,2,3,4,5,6,7,8,9,10 .JPG) [...]



== USO EL SIGUIENTE CODIGO Private Sub Worksheet_Change(ByVal Target As Range)
If Not Target.Address = "$A$1" Then Exit Sub
Application.ScreenUpdating = False
De_donde = "C:\EXCEL\" & [a1] & ".jpg"
With Me.Image1
If Dir(De_donde) = "" Then Me.Image1.Visible = False: Exit Sub
.Picture = LoadPicture(De_donde)
.PictureSizeMode = fmPictureSizeModeZoom
.Visible = True
End With
End Sub

Preguntas similares