¿Cómo insertar varias imágenes simultáneamente de una carpeta en un excel ante cambio en celdas?

Hola, soy nuevo tanto en la página como en la programación VBA de excel, así que primero pido disculpas por el desconocimiento que puedo exhibir.

Mi intención es hacer una planilla en donde al modificar las celdas de una columna, se inserten automáticamente imágenes que tengo en una carpeta. Las celdas que se modificarían simultáneamente ya que toman su valor según una formula que se determina según el valor de una celda en particular (al modificarse esta celda, se modifican todas las del rango en cuestión). El valor que toman esas celdas se corresponden a los nombres de las imágenes. Ya tengo creados todos los cuadros de Imagen ActiveX. Estuve buscando un poco y creo que debo usar Worksheet_Change, pero todas las que vi están preparadas para que se inserte una imagen y yo necesito varias. No se si se puede implementar un bucle para que a medida que se vayan detectando las modificaciones en las celdas, se vayan incluyendo las imágenes en los marcos. Espero que alguien pueda ayudarme. Desde ya muchas gracias y reitero mis disculpas por la ignorancia.

Respuesta
1

Envíame tu archivo para adaptar el código a las imagen Active X

Gracias, Dante. Con lo que me respondiste en la otra pregunta mas algo que investigué, logré insertar las imágenes. Ahora tengo el problema de que cuando modifico la celda que monitorea el Worksheet no logro que me borre las imágenes existentes antes de insertar las nuevas. Encontré un código pero me borra todas las imágenes insertadas y yo necesitaría poder especificar el rango de celdas donde se encuentran las imágenes a borrar. Esto se puede hacer???

Con esto borras imágenes que están dentro de un rango

Sub borrar()
'Por.DAM
With Range("C3:D17")
    arr = .Top
    izq = .Left
    anc = .Offset(0, .Columns.Count).Left
    alt = .Offset(.Rows.Count, 0).Top
End With
For Each img In ActiveSheet.DrawingObjects
    If img.Top >= arr And img.Top <= alt And _
       img.Left >= izq And img.Left <= anc Then
        img.Delete
    End If
Next
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas