Imagenes

16/11/2004 - 00:44 por Nestor Valle | Informe spam
Hola, tengo un problema: tengo una serie de imagenes.
Quiero que al escribir un codigo en una celda me pegue la
imagen al lado. Cada codigo tiene su respectiva imagen.
Espero su respuesta...Gracias...
 

Leer las respuestas

#1 Héctor Miguel
16/11/2004 - 08:24 | Informe spam
hola, Nestor !

... problema: tengo una serie de imagenes.
... que al escribir un codigo en una celda me pegue la imagen al lado.
Cada codigo tiene su respectiva imagen.



1° las imagenes [pudieramos decir que] NO son 'parte de' la hoja de calculo
[son objetos 'incrustados' en la capa de dibujo]
2° a menos que cada imagen tenga asignado un nombre [objeto o archivo] que se corresponda con el codigo...
-> ¿como 'saber' cual codigo 'le toca' a cada imagen?
-> ¿en donde/como estan ubicadas/distribuidas las imagenes?
3° no se cuantas imagenes tengas [o vayas a tener] incrustadas en una hoja, pero si son 'demasiadas'...
-> 'corres el riesgo' de 'agotar' los recursos [p.e. memoria] disponibles para la aplicacion [entre 'otros'] <= OJO
-> [te sugiero] en lugar de incrustar imagenes [y en caso de que NO sea 'absolutamente indispensable']...
'tenlas' guardadas en el disco y, en la hoja...
diseña una 'tabla de ubicaciones' [p.e. unidad:uta y\directorioombreArchivo.EXT]

[para 'iniciar'] te expongo un ejemplo al final [ya comentaras los cambios necesarios]
saludos,
hector.

suponiendo que...
-> el formato de [todas] las imagenes es 'JPG'
-> el directorio de [todas] las imagenes es 'C:\Mis imagenes\'
-> deseas que la imagen quede 'enmarcada' dentro del rango 'F1:H21'...
-> y en la celda 'A1' escribes/obtienes/depositas [solo] el 'nombre/numero' de la imagen...
en el modulo de codigo de 'la hoja' ==Private Sub Worksheet_Change(ByVal Target As Range)
If Not Target.Address = "$A$1" Then Exit Sub
Dim De_donde As String, Foto As Object, _
Arriba As Double, Izquierda As Double, Ancho As Double, Alto As Double
Application.ScreenUpdating = False
On Error Resume Next
Me.Shapes("LaFoto").Delete
De_donde = "C:\Mis imagenes\" & [a1] & ".jpg"
If Dir(De_donde) = "" Then Exit Sub
Set Foto = Me.Pictures.Insert(De_donde)
With Me.Range("f1:h21")
Arriba = .Top
Izquierda = .Left
Ancho = .Offset(0, .Columns.Count).Left - .Left
Alto = .Offset(.Rows.Count, 0).Top - .Top
End With
With Foto
.Name = "LaFoto"
.Top = Arriba
.Left = Izquierda
.Width = Ancho
.Height = Alto
End With
Set Foto = Nothing
End Sub

Preguntas similares