Ahora sí, aquí lo dejo por si a alguien le viene bien.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim celda As Range
Dim imgNombre As String
Dim imgOriginal As Shape
Dim imgCopia As Shape
Dim nombreImagenCelda As String
' Solo actuar si el cambio es en una celda individual
If Target.CountLarge > 1 Then Exit Sub
Set celda = Target
nombreImagenCelda = "Imagen_" & celda.Address(False, False)
' Eliminar imagen existente en esa celda (si existe con ese nombre)
On Error Resume Next
Me.Shapes(nombreImagenCelda).Delete
On Error GoTo 0
' Determinar qué imagen usar según el valor
Select Case celda.Value
Case 1: imgNombre = "PruebaEuropa"
Case 2: imgNombre = "PruebaAsia"
Case 3: imgNombre = "PruebaÁfrica"
Case 4: imgNombre = "PruebaAmérica"
Case 5: imgNombre = "PruebaOceanía"
Case 6: imgNombre = "PruebaMarrón"
Case Else: Exit Sub ' No hacer nada si el valor no es válido
End Select
' Buscar la imagen original
On Error Resume Next
Set imgOriginal = Me.Shapes(imgNombre)
On Error GoTo 0
If imgOriginal Is Nothing Then
MsgBox "No se encontró la imagen '" & imgNombre & "'.", vbExclamation
Exit Sub
End If
' Copiar la imagen y colocarla sobre la celda
imgOriginal.Copy
Me.Paste
Set imgCopia = Me.Shapes(Me.Shapes.Count)
With imgCopia
.Top = celda.Top
.Left = celda.Left
.Height = celda.Height
.Width = celda.Width
.LockAspectRatio = msoFalse
.Name = nombreImagenCelda
End With
End Sub
Por
Maku, · publicado
Estimados compañeros, me permito poner este link para todos aquellos que deseen saber cómo mostrar imágernes según selección.
Creo que es una buena forma de hacerlo.
Espero les sea de utilidad.
http://excellentias.com/graficos-excel/otros-tipos-graficos/visor-imagenes-excel
Saludos.