Insertar imagen en varias formas a la vez

Entrada núm: 6 of 6 de la serie Formas e imágenes

Insertar imagen en una forma

En la zona de comentarios correspondientes al video VBA para insertar imágenes en Excel, que publiqué allá por 2012, un usuario me ha preguntado recientemente sobre la posibilidad de insertar de una vez la misma imagen en todas las formas que estén flotando sobre una determinada hoja de un libro de Excel. Tengo también otro artículo y otro video en la web sobre el tema de incrustación de imágenes en formas que puedes ver aquí: Incrustar imágenes en una forma con VBA.

Es un problema interesante que me sirve para hacer un poco de didáctica sobre el tema de los objetos flotantes en Excel. Hay que decir, en primer lugar, que cada hoja de un determinado libro de Excel, tiene una capa imaginaria sobre ella, en la que se pueden dejar flotando una variedad de objetos, desde las formas o “Shapes”, hasta los controles de todo tipo, pasando por imágenes incrustadas directamente, gráficos, botones, etc.

Hay que entender que existe una relación de cada objeto flotante con la hoja sobre la que flota, y a esa relación la podríamos calificar como de pertenencia flotante, o sea, el objeto flotante está encima de esa hoja en particular, y no de otra. Por tanto, para referirme a ese objeto a través de código VBA, tendré siempre que hacer una referencia previa a la hoja, y además, tendré que activar la hoja antes. En otro caso, obtendré error porque para trabajar con un objeto flotante, tengo que seleccionarlo antes, y para seleccionarlo, tengo que tener activa la hoja con la que tiene una relación de pertenencia flotante.

La ruta de la imagen

Dicho esto, a través de la grabación de una macro que recoge la acción de incrustar la imagen en cuestión en cualquiera de las formas sobre la hoja, luego es muy fácil generalizar el código para que se extienda a todas las formas que están flotando sobre esa hoja en particular. En el caso de mi ejemplo se trata de incrustar la imagen que tengo guardada en la ruta:

“Z:\home\eloy\Trabajos\Dibujo\Nuevos Personajes\Don Jose Ortega y Gasset.png”

en todas las formas que estén flotando sobre la Hoja1, y por tanto el código queda así:

Cada uno debería cambiar esa ruta por la de la imagen en cuestión que quiera incrustar en sus formas.

Dicho lo cual, y antes de pasar al video, os doy las gracias por vuestra atención y os dejo el dibujo de don José Ortega y Gasset a una escala un poco más presentable, junto a un enlace al artículo de mi web Área Subliminal titulado Síndrome de aversión al plural masculino extendido, en el que lo utilicé algún tiempo atrás.

Y este es el video explicativo.

Series Navigation<< Tratamiento de objetos flotantes en Excel

Comments

This post currently has 2 responses

  • Hola como puedo hacer para que en una base de datos, por ejemplo de productos alimenticios, al darle click a un boton de cheque que se situe en la fila correspondiente al producto se copie a la siguiente hoja junto con los encabezados de la tabla, pero no de forma transponer, sino los encabezados en la una columna y los datos del producto correspondiente a ellos en la siguiente columna, y que este rango se multiplique por la cantidad de veces que hay en existencia, para etiquetar cada producto.
    Ejemplo los encabezados serian:
    *codigo
    *descripcion del producto
    *lote
    *fecha de vencimiento
    Y los datos que se pasarian a la siguiente hoja serian los correspondientes a esos encabezados, formando un rango de A1:B4 con marco externo y que este se multiplique segun la existencia que se encuentra en una columna de la base de datos.
    Espero me puedan ayudar, de antemano muchas gracias

    • Hola. Es una pregunta compleja. Te recomiendo que visites un foro y la plantees con claridad y extensión, añadiendo un archivo con el ejemplo. Plantealo en necesitomas.com o en ayudaexcel.com y seguro que si lo explicas bien habrá alguien que te pueda ayudar.

Deja tu comentario aquí:

Sidebar



A %d blogueros les gusta esto: