¿Una macro en Excel para insertar y ordenar N imágenes?

Tengo una macro que inserta N cantidad de imágenes desde una carpeta llamada img (la cual está en la misma carpeta donde se almacena el archivo xlsm) y las redimensiona en su anchura a un tamaño que ya tengo definido.

Lo que quisiera es que también es que:

  • Ordenará las imágenes una debajo de otra, alineándolas al centro de la página, por ahora solo las superpone.
  • Que si vuelvo a ejecutar la macro las nuevas imágenes se ubiquen debajo de las anteriores.
  • Que se inserten partiendo de una celda definida.

Espero me puedan ayudar, no sé si es mucho pedir, dejo aquí el código (no es mío lo encontré y solo lo modifique un poco) o ¿alguna otra sugerencia?

Sub Insertimag()

Application.ScreenUpdating = False

On Error Resume Next

 Dim vrtSelectedItem As Variant

 With Application.FileDialog(msoFileDialogFilePicker)

.Title = "Selecciona las imagenes"

.Filters.Clear

.Filters.Add "Archivos JPG PNG BMP", "*.jpg*;*.png*;*.bmp*"

.FilterIndex = 1

.AllowMultiSelect = True

.InitialFileName = ThisWorkbook.Path & "\img\"

 If .Show Then

 For Each vrtSelectedItem In .SelectedItems

Cells(fila, col).Select

ActiveSheet.Pictures.Insert(vrtSelectedItem).Select

    Selection.ShapeRange.Width = 400

 Next

 End If

 End With

 End Sub

1 Respuesta

Respuesta
1

Yo lo haría distinto y más ordenado, pero como no es tu consulta, te dejo una recomendación basado en lo que ya tienes ahí, modifica así y/o adapta a tus necesidades:

fila = 2
 For Each vrtSelectedItem In .SelectedItems
Cells(fila, 8).Select
ActiveSheet.Pictures.Insert(vrtSelectedItem).Select
    Selection.ShapeRange.Width = 400
fila = fila + 16
 Next

Comentas

Abraham Valencia

Gracias por contestar tan pronto. Ya lo probé pero me da el mismo resultado, ¿pero no se si es por la version de Excel?, es 2007, estoy por probarlo en una versión más reciente. Pero me intereso tu comentario de hacerlo de forma distinta y más ordenada. ¿Soy nuevo aquí así que no se muy bien si me puedes dar por aquí tu opción o tengo que preguntarte directamente?. De antemano nuevamente gracias.

¿Reemplazaste las líneas que te he enviado? Parece que no

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas