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
Hola;
os adjunto un archivo que me goberné hace tiempo, ordenando los archivos excel que tengo lo he visto, y quiero compartirlo con vosotros.
Fijo que es de alguna página pero no me se el nombre, si alguien lo reconoce que lo ponga por favor.
No se si sera de ExcelGali o nose no me acuerdo, hace ya tiempo.
Un Saludo
Jose Maria.
Trucos Macro.zip