EXCEL Worksheet_Change funcione más de 1 vez...
Buen día!
Tengo esta macro para insertar en celdas imágenes desde una carpeta.
Lo malo es que solo se puede 1 foto a la vez y necesito que sean varias las fotos.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Foto As Object, Arriba As Double, Izquierda As Double, Ancho As Double, Alto As Double
Dim ruta As String
Application.ScreenUpdating = False
On Error Resume Next
If Not Target = [a1] Then Exit Sub
Me.Shapes("Foto").Delete
ruta = ThisWorkbook.Path & "\FOTOS_EMPLEADOS\" & [a1] & ".jpg"
Set Foto = Me.Pictures.Insert(ruta)
With Range("B1:D5")
Arriba = .Top
Izquierda = .Left
Ancho = .Offset(0, .Columns.Count).Left - .Left
Alto = .Offset(.Rows.Count, 0).Top - .Top
End With
With Foto
.Name = "Foto"
.Top = Arriba
.Left = Izquierda
.Width = Ancho
.Height = Alto
End With
Set Foto = Nothing
Application.ScreenUpdating = True
End Sub
Osea que ademas del valor de a1 también tengo diferentes valores en a2, a3, a4, etc. Y cada uno llamaría a diferente imagen.
Tengo esta macro para insertar en celdas imágenes desde una carpeta.
Lo malo es que solo se puede 1 foto a la vez y necesito que sean varias las fotos.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Foto As Object, Arriba As Double, Izquierda As Double, Ancho As Double, Alto As Double
Dim ruta As String
Application.ScreenUpdating = False
On Error Resume Next
If Not Target = [a1] Then Exit Sub
Me.Shapes("Foto").Delete
ruta = ThisWorkbook.Path & "\FOTOS_EMPLEADOS\" & [a1] & ".jpg"
Set Foto = Me.Pictures.Insert(ruta)
With Range("B1:D5")
Arriba = .Top
Izquierda = .Left
Ancho = .Offset(0, .Columns.Count).Left - .Left
Alto = .Offset(.Rows.Count, 0).Top - .Top
End With
With Foto
.Name = "Foto"
.Top = Arriba
.Left = Izquierda
.Width = Ancho
.Height = Alto
End With
Set Foto = Nothing
Application.ScreenUpdating = True
End Sub
Osea que ademas del valor de a1 también tengo diferentes valores en a2, a3, a4, etc. Y cada uno llamaría a diferente imagen.
1 Respuesta
Respuesta de Isaac Reyes
1