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 Sub
El 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