Aprendemos Código VBA extendido a varias imágenes
¡Saludos!
Tengo un problema con un código, y ya que no sé programar en VBA me encuentro totalmente parado. El código es este:
Private Sub Worksheet_Change(ByVal Target As Range)
'Si hay errores, que continúe
On Error Resume Next
'Si cambiamos el dato de la celda X, mostramos la foto de ese Clan
If Target.Cells = Range("E24") Then
'Ocultamos el procedimiento
Application.ScreenUpdating = False
'Pasamos a una variable, el nombre de la foto,
'que será el mismo que el nombre del Clan
imagen = Range("E24").Value
'Añadimos la extensión "png"
imagen = imagen & ".png"
'Buscamos la foto en el mismo directorio
'donde tenemos este fichero de Excel
ruta = ActiveWorkbook.Path & "\clanes\" & imagen
'Borramos la foto del Clan (si hubiera alguna)
Me.Shapes("imagen_clan").Delete
'Creamos el objeto fotografia, con la foto insertada
Set clan = Me.Pictures.Insert(ruta)
'Haremos que la foto ocupe desde X hasta X,
'para que no salgan fotos supergrandes, o
'superpequeñas, y salgan más "normalitas"
With Range("Z9:AH25")
Arriba = .Top
Izquierda = .Left
Ancho = .Offset(0, .Columns.Count).Left - .Left
Alto = .Offset(.Rows.Count, 0).Top - .Top
End With
'Le ponemos un nombre al objeto "clan"
'para poder borrarlo cuando cambie la celda X
'(Ver que borramos la foto que hubiese, antes de insertar la nueva)
With clan
.Name = "imagen_clan"
.Top = Arriba
.Left = Izquierda
.Width = Ancho
.Height = Alto
End With
'Eliminamos el objeto
Set clan = Nothing
'Ponemos todo como estaba
Application.ScreenUpdating = True
End If
End SubEl código funciona perfectamente, pero quiero modificarlo según dos posibles ideas (cualquiera de las dos me valdría)
1- ¿Se puede 'extender' este código para que coja el valor de 3 celdas en lugar de 1, y ponga 3 imágenes en lugar de 1?
2- En caso de que lo anterior no pueda hacerse, ¿existe algún modo para 'repetir' este código en la misma hoja sin que me salte un error de compilación o algo así?
Muchas gracias por las molestias =)
1 respuesta
Respuesta de Dante Amor
1