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 hace 17 minutos 17 min
Me es grato compartir con todos los foristas de este sitio. En verdad, andaba buscando un sitio que me permitiera avanzar en los conocimientos de esta maravillosa herramienta que es Excel. Trataré de no ser inferior a todos ustedes y aportaré con gusto mis pocos conocimientos en esta aplicación. Suerte a todos.