¿Insertar imágenes en macro de excel en celdas compartidas?

Soy nuevo en el foro, mi problema es que necesito una macro que haga
lo siguiente:

1.-Te coloque imágenes automáticamente en una celda compartida pegando la ruta donde se encuentra la carpeta con las imágenes
Y antes de insertar nuevamente imágenes se limpie para evitar se sature
2.-Que se ajusten al tamaño de la celda sin perder sus propiedades

3.-Todo esto con un botón

La situación es que me llegan imágenes y las tengo que anexar aun formato en excel pero tengo que buscar imagen por imagen colocarlas y ajustarlas al tamaño de las celdas, mi intención es nombrar las imágenes para que la macro las reconozca automáticamente

1 Respuesta

Respuesta
1

Tengo que revisar varios datos de tu hoja, mejor envíame tu archivo y dime en dónde quieres la imagen, ¿es una imagen por hoja? ¿O vas a tener varias imágenes en varias celdas de la misma hoja?

Te sugiero que pongas imágenes .jpg o jpeg, para que no pierdan sus propiedades y para no saturar el archivo.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “armando zamora” y el título de esta pregunta.

ya te lo envié Dante Amor gracias 

La macro pondrá la foto: "1.jpg" en la celda "E8", la "2.jpg" en la "J8" y la "3.jpg" en la celda "E9".

Lo anterior lo hace la macro porque tiene las referencias en estas líneas de la macro:

    celda = Array("E8", "J8", "E9")

fotos = Array("1.jpg", "2.jpg", "3.jpg")

Cada celda tiene su correspondiente nombre de imagen.

Si tienes la relación de celda y el nombre del archivo, solamente termina las listas y ejecuta la macro.

Sub CargarFotos()
'Por.Dante Amor
    celda = Array("E8", "J8", "E9")
    fotos = Array("1.jpg", "2.jpg", "3.jpg")
    ruta = ThisWorkbook.Path & "\fotos\"
    '
    ActiveSheet.Pictures.Delete
    For i = LBound(celda) To UBound(celda)
        fich = ruta & fotos(i)
        tope = Range(celda(i)).Top + 100
        izqu = Range(celda(i)).Left + 30
        alto = Range(celda(i)).Height + 250
        anch = Range(celda(i)).Width + 100
        ActiveSheet.Pictures.Insert(fich).Select
        w = Selection.Width
        h = Selection.Height
        Selection.ShapeRange.Top = tope
        Selection.ShapeRange.Left = izqu
        Selection.ShapeRange.Height = alto
        Selection.ShapeRange.Width = anch
    Next
End Sub

Al final de mi respuesta dice: “Es una buena respuesta” y puedes seleccionar una de 3 opciones:

  • Excelente
  • Si
  • No

Saludos. Dante Amor

muchas gracias Dante Amor es justo lo que necesitaba y a demás tuviste paciencia para responder mis dudas, solo una cosa, en los formatos pongo una imagen de un logo que debe llevar cada hoja y al ejecutar la macro me las elimina que puedo hacer para que no pase eso?

Quita de la macro esta instrucción

ActiveSheet.Pictures.Delete

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas