Como principio a una serie de artículos, comenzaré hoy explicando cómo podemos borrar las imagenes (Picture) de una hoja de cálculo, pero sólo las imágenes(Picture)!!, respetando el resto de objetos existentes, como botones, autoformas, gráficos, etc...
Esto es importante en muchos casos cuando queremos 'hacer limpieza' en nuestra hoja de Excel, pero limitada a cierto tipo de objetos.
En primer lugar, para generalizar nuestra macro de hoy, necesitaremos tener conciencia de cómo identifica Excel estos objetos, cómo los diferencia. Para ejemplarizarlo veremos la imagen siguiente donde observamos varias imágenes, junto a otros objetos (dos Botones, un Gráfico, un Rectángulo de texto, una autoforma ovalada):
Usando una instrucción Type sobre cada objeto, veremos de manera muy sencilla, qué identificador único usa Excel para cada objeto.
Insertaremos en un módulo del Explorador de proyectos del Editor de VBA el siguiente código, dándo forma a nuestra macro de Excel:
Al ejecutar esta macro, idetificamos mediante un Cuadro MsgBox el nombre del objeto, y al lado el tipo o identificador. Como vemos en la imagen siguiente para dos de los objetos, lo importante es que para todas las imágenes (Picture) el tipo tiene el valor 11, y por ejemplo el gráfico el valor 3, o la autoforma Ovalada el valor 1.
Para nosotros, el valor 11 de las imágenes es lo importante.
Con la clave descubierta, lo que sigue es lo más sencillo, ya que construiremos una nueva macro, similar a la anterior:
Insertaremos en un módulo del Explorador de proyectos del Editor de VBA el siguiente código, dándo forma a nuestra macro de Excel:
Y al ejecutarla podremos observar cómo elimina o borra sólo los objetos tipo imágen, dejando el resto visibles y con todas sus funcionalidades...
En siguientes entradas aprederemos a Listar los ficheros exitentes en una carpeta de nuestro PC, y posteriormente, aprovecharemos esta lista, para insertar imágenes asociadas a esos ficheros, con formatos personalizados.
Esto es importante en muchos casos cuando queremos 'hacer limpieza' en nuestra hoja de Excel, pero limitada a cierto tipo de objetos.
En primer lugar, para generalizar nuestra macro de hoy, necesitaremos tener conciencia de cómo identifica Excel estos objetos, cómo los diferencia. Para ejemplarizarlo veremos la imagen siguiente donde observamos varias imágenes, junto a otros objetos (dos Botones, un Gráfico, un Rectángulo de texto, una autoforma ovalada):
Usando una instrucción Type sobre cada objeto, veremos de manera muy sencilla, qué identificador único usa Excel para cada objeto.
Insertaremos en un módulo del Explorador de proyectos del Editor de VBA el siguiente código, dándo forma a nuestra macro de Excel:
Sub TipoObjetos() Dim img As Shape On Error Resume Next For Each img In ActiveSheet.Shapes MsgBox img.Name & " " & img.Type Next End Sub
Al ejecutar esta macro, idetificamos mediante un Cuadro MsgBox el nombre del objeto, y al lado el tipo o identificador. Como vemos en la imagen siguiente para dos de los objetos, lo importante es que para todas las imágenes (Picture) el tipo tiene el valor 11, y por ejemplo el gráfico el valor 3, o la autoforma Ovalada el valor 1.
Para nosotros, el valor 11 de las imágenes es lo importante.
Con la clave descubierta, lo que sigue es lo más sencillo, ya que construiremos una nueva macro, similar a la anterior:
Insertaremos en un módulo del Explorador de proyectos del Editor de VBA el siguiente código, dándo forma a nuestra macro de Excel:
Sub borrarImagenes() Dim img As Shape On Error Resume Next For Each img In ActiveSheet.Shapes If img.Type = 11 Then img.Delete Next End Sub
Y al ejecutarla podremos observar cómo elimina o borra sólo los objetos tipo imágen, dejando el resto visibles y con todas sus funcionalidades...
En siguientes entradas aprederemos a Listar los ficheros exitentes en una carpeta de nuestro PC, y posteriormente, aprovecharemos esta lista, para insertar imágenes asociadas a esos ficheros, con formatos personalizados.
Hola.
ResponderEliminarMuchas gracias por éste aporte, muy claro, conciso y práctico.
En el código para borrar las imágenes cambié:
If img.Type = 11 Then img.Delete
Por éste:
If img.Type = msoPicture Then img.Delete
Al tipear el signo de igual(=) automáticamente se despliega la ventana con varias opciones.
Es cuestión sólo de ir viendo cual requerimos.
Saludos y nuevamente, muchas gracias.
Ignacio Téllez
Puebla, México.
May.29.2012
Muchas gracias Ignacio,
Eliminartu aporte es sin duda mucho más general y válido para más casos.
De nuevo gracias!!!
Buenisimo el aporte, una pregunta? si no quiero borrar el objeto sino guardarlo en mis documentos en la maquina? como por ejemplo una foto... cuales serian las instrucciones a agregar?
ResponderEliminarsaludos
Hola Fer,
Eliminarel asunto no es fácil, ya que no existe una instrucción para guardar las imágenes (objetos) dentro de una hoja de cálculo; una forma de hacerlo sería pegar las imágenes dentro de un objeto gráfico, por que éstos si es posible exportarlos y guardarlos en un archivo en nuestro equipo.
Subiré la semana que viene la macro que lo realiza.
Slds
Buen aporte!! una consulta, y si quisiera borrar solo una forma en particular como seria?? desde ya muchas gracias!!
ResponderEliminarBien, si sólo quieres borrar una forma en particular
Eliminartendrías que seleccionar dicha forma indicando su nombre:
ActiveSheet.Shapes("nombre").Delete
Slds
Muchas gracias!, te hago otra consulta, como hago para identificar el nombre de la forma???
ResponderEliminarVeo que vamos paso a paso, je, je...
EliminarDiscúlpame, pensaba, por el tipo de cuestiones tan directas que hacías, que controlabas algo del tema.
Para conocer el nombre de la forma no te queda más remedio que pinchar sobre ella con el ratón y en sus propiedades ver el nombre, o también en el Cuadro de nombres; claro, que si no conocer el nombre de la forma que quieres borrar, una macro no te servirá de mucho, ya que en ese procedimiento tendrás que indicarle de alguna manera cuál de todas las formas de la hoja es la que quieres borrar.
Slds
Hola, tengo un problema y quiero que me ayudes a resolverlo, por favor: El caso es que necesito manejar informacion en forma texto, quiero que al ingrasar a cierta casilla esta me arroje informacion por ejemplo: tengo la ubicacion de un sitio, ahora quiero que al seleccionar ese sitio en la siguiente casilla me muestra las areas que estan en ese sitio especifico y despues de seleccionar el area que me muestra la actividad o actividades que aplican a esa area de la empresa.
ResponderEliminarAgradezco su gentil atencion.
Deisy Duran
Hola Deisy,
Eliminarbueno, creo que una validación de datos anidada podría solucionar tu problema.
Te adjunto algunos post del blog que hablan del tema:
http://excelforo.blogspot.com.es/2009/10/ejemplo-de-doble-validacion.html
http://excelforo.blogspot.com.es/2010/04/validacion-de-celdas-anidadas-y.html
Slds
Hola buenos dias!
ResponderEliminarTengo varios shapes (rectangulo redondo) y cada uno tiene un numero. como hago para capturar ese numero al hacer clik?
Desde ya muchas gracias... Gustavo
Hola Gustavo,
Eliminarbueno, el nombre de cada forma lo pueves ver en el cuadro de nombres, pero para recuperarlo con programación serviría algo así:
Sub MiMacro()
Dim forma As Shape
Set forma = ActiveSheet.Shapes(Application.Caller)
MsgBox "La forma sobre al que has hecho clic es " & forma.Name
End Sub
y luego asociar la macro a cada Autoforma de la que quieras saber su nombre.. así al ahcer clic sobre ella mostrara una ventana de texto con el nombre.
Espero te sirva.
Slds
Ojo con esto, en la línea:
ResponderEliminarIf img.Type = msoPicture Then img.Delete
La constante msoPicture tiene el valor de tipo 13 y por lo tanto las imágenes con tipo 11 no son borradas
Correcto!
Eliminarpor eso insitía en la explicación que únicamente las imágenes type 11 (picture).
Gracis por la puntualización.
Slds cordiales
Muy bueno el aporte, pero me surge una duda, si solo queremos quitar las imagenes de un rang determinado, ¿como se hace? probe con esto pero me da error:
ResponderEliminarSub borrarImagenes()
Dim img As Shape
On Error Resume Next
Range("B6:L25").Select
For Each img In Selection.Shapes
If img.Type = 11 Then img.Delete
Next
End Sub
Hola Jorge,
Eliminarbueno el asunto es algo más complejo... pero no mucho ;-)
Se trataría de localizar dónde comienzan las formas/imágenes y controlar si están o no dentro del rango indicado con INTERSECT, así:
Sub borrarImagenes()
Dim img As Shape
On Error Resume Next
For Each img In ActiveSheet.Shapes
If Not Application.Intersect(img.TopLeftCell, Range("B6:L25")) Is Nothing Then
If img.Type = msoPicture Then img.Delete
End If
Next
End Sub
Espero te sirva...
Slds
Siii, muchas gracias jeje
ResponderEliminarHola,
ResponderEliminarcreo te servirá lo expuesto en esta entrada:
http://excelforo.blogspot.com.es/2012/05/vba-una-macro-en-excel-para-insertar.html
Un saludo
buen dia.-
ResponderEliminarmi amaigo muchas gracias!!!, tu conocimiento me acaba de salvar mi chamba, jajajaja, estaba tratando de borrar las imagenes de un reporte, pero tu respuesta y conocimient fue mas aya de lo ocupaba y termino mejorando mi reporte, me quito el sombrero ante ti.
gracias.
;-)
Eliminargracias!! me alegro te haya sido de utilidad
Slds
Hola, espero me puedan ayudar, tengo un problema con mi macro, lo que hace es mandar imprimir una lista de tarjetas de produccion y en cada una de ellas se debe de imprimir la foto asociada al estilo (es de calzado). Si lo ejecuto con f8 puedo ver como se van cambiando las imagenes sin problema pero al mandar imprimir me deja solo la primera imagen y todas las demas tarjetas salen con la misma foto. Tendran alguna solucion.
ResponderEliminarEste es el codigo que estoy usando (disculpen la simpleza pero soy nuevo en programacion en Excel).
Sub ImpTarjeta()
Range(“aa2″).Select
Dim cont As Integer
cont = 1
Do While ActiveCell.Value “”
‘Aqui creo la cadena para el nombre del archivo
Range(“q2″).Value = ActiveCell.Value
Set fso = CreateObject(“Scripting.FileSystemObject”)
nombre = Range(“aa21″).Value
‘ Aqui valido si el archivo existe para que lo ponga en el control de imagen
If (fso.FileExists(“D:\Documentos\Google Drive\OneDrive\Taller Produccion\Estilos\Imagenes Tarjetas\” & nombre & “.jpg”)) Then
ActiveSheet.FotoTarjeta.Picture = LoadPicture(“D:\Documentos\Google Drive\OneDrive\Taller Produccion\Estilos\Imagenes Tarjetas\” & nombre & “.jpg”)
End If
‘Selecciono el rango que quiero imprimir y mando la impresion
Range(“A1:T29″).Select
Selection.PrintOut Copies:=1, Collate:=True
cont = cont + 1
ActiveCell.Offset(0, 9).Select
ActiveCell.Offset(cont, 0).Select
Loop
End Sub
Hola Francisco,
Eliminarel código parece correcto... y como indicas, sobre la hoja puedes ver como cambian.
Se me ocurre que antes del Loop final añadas un refresco de pantalla:
....
Application.Calculate
ActiveWorkbook.RefreshAll
Loop
End Sub
Quizá así, después de cada impresión refrescando, se muestre correctamente en la impresión
Espero te funcione.
Saludos
Buenas.
ResponderEliminarTengo esta macro que me sirve para poner una pequeña autoforma dentro de una celda (en la misma fila pero 5 columnas atrás) en función de lo que selecciono en una lista desplegable de otra celda. En una parte de la hoja tengo metidas las autoformas dentro de unas celdas (F58,F59..). Esta operación se puede realizar en cualquier fila del archivo y cambiar valores que ya estaban seleccionados para que cambie también la autoforma, por eso al principio busco en que celda tiene suceso el cambio de valor. Actualmente me funciona pero el proceso tiene un grabe problema que no se revolver, cada vez que cambia el valor de una celda que ya estaba seleccionada tengo que cortar la celda y pegarla en una zona alejada (JL14) de la hoja para que se elimine la anterior autoforma y que no quede debajo de la autoforma de la nueva selección (ya que se ven las dos autoformas una encima de otra), esto me produce que con el paso del tiempo el archivo el archivo ocupe mas y mas tamaño puesto que las autoformas que corto y pego en la zona alejada nunca se borran y no hacen mas que crecer unas sobre otras. He probado con la solución que propones pero solo consigo que se borren todas las autoformas o si defino el rango (en este caso una celda única con valor Cells(fila,columna-5) salta un error que no soy capaz de averiguar.
Gracias de antemano.
If ActiveCell = "Valor Añadido" Then
columna = ActiveCell.Column
fila = ActiveCell.Row
Cells(fila, columna - 5).Cut
Range("JL14").Select
ActiveSheet.Paste
Range("F58").Select
Selection.Copy
Cells(fila, columna - 5).Select
ActiveSheet.Paste
ElseIf ActiveCell = "Insp-Operación" Then
columna = ActiveCell.Column
fila = ActiveCell.Row
Cells(fila, columna - 5).Cut
Range("JL14").Select
ActiveSheet.Paste
Range("F59").Select
Selection.Copy
Cells(fila, columna - 5).Select
ActiveSheet.Paste
ElseIf ActiveCell = "Desplazamiento" Then
columna = ActiveCell.Column
fila = ActiveCell.Row
Cells(fila, columna - 5).Cut
Range("JL14").Select
ActiveSheet.Paste
Range("F61").Select
Selection.Copy
Cells(fila, columna - 5).Select
ActiveSheet.Paste
Hola,
Eliminarpara borrar las imágenes que van siendo 'apartadas' puedes localizar la zona de borrado:
For Each img In ActiveSheet.Shapes
On Error Resume Next
tc = img.BottomRightCell.Column
tr = img.BottomRightCell.Row
If (tc >= PrimeraColumna And tc <= UltimaColumna) And _
(tr >= PrimeraFila And tr <= UltimaFila) Then
If img.Type = 13 Then
img.Delete
End If
End if
On Error GoTo 0
Next
siendo PrimeraFila, PrimeraColumna, etc los números de filas y columnas que limitan dónde se encuentran las imágenes a borrar.
Saludos
Este comentario ha sido eliminado por el autor.
EliminarMuchas gracias.
EliminarAcabado de probarlo, pero me da un error. He insertado el código después de cortar y pegar la celda con la autoforma en la zona apartada. No se si el error es que no se debe insertar ahí.
If ActiveCell = "Valor Añadido" Then
columna = ActiveCell.Column
fila = ActiveCell.Row
Cells(fila, columna - 5).Cut
Range("JL14").Select
ActiveSheet.Paste
For Each img In ActiveSheet.Shapes
On Error Resume Next
tc = img.BottomRightCell.Column
tr = img.BottomRightCell.Row
If (tc >= PrimeraColumna And tc <= UltimaColumna) And _
(tr >= PrimeraFila And tr <= UltimaFila) Then
If img.Type = 1 Then
img.Delete
End If
End If
On Error GoTo 0
Next
Range("F58").Select
Selection.Copy
Cells(fila, columna - 5).Select
ActiveSheet.Paste
Sigo dando vueltas al tema y se me ocurre que si no seria mas fácil sustituir esta parte de código
Cells(fila, columna - 5).Cut
Range("JL14").Select
ActiveSheet.Paste
Que corta y pega la celda con la autoforma y la pega en una zona apartada por un código similar al que me aconsejas pero que únicamente elimine la autoforma del interior de la celda sobre la que estoy trabajando en ese momento (Cells(fila,columna-5)) y así ahorrar pasos de codigo al no tener que pegarla en la zona apartada para luego borrarla
Muchisimas gracias
esa es la idea Luis..
Eliminarno tener que cortar, si no con el código comentado eliminarlas las imágenes del rango en que trabajes, delimitando las variables (primeracolumna, ultimacolumnas, etc) con los datos de la celda en que se encuentre dicha autoforma...
Slds
Hola Ismael, He utilizado tu código para borrar imágenes, pero le he añadido para que borre también cuadro de texto en el mismo rango, el cual funciona, y es como sigue:
ResponderEliminarSub borrarImagenesCuadrotexto()
Dim img As Shape
On Error Resume Next
For Each img In ActiveSheet.Shapes
If Not Application.Intersect(img.TopLeftCell, Range("B6:L25")) Is Nothing Then
If img.Type = msoPicture Then img.Delete
If img.Type = msoTextBox Then img.Delete
End If
Next
End Sub
Mi consulta es, si hay un código más corto para este procedimiento, y quisiera crear una macro con las mismas características, pero que además se borren las imágenes y cuadros de textos en todas las hojas, o mejor por Ejm a partir de la Hoja2, ya que tengo más de 40 hojas donde quiero eliminar las imágenes y cuadros de textos en el mismo rango
Gracias de antemano
Hola Erick,
Eliminarmás corto podría ser en lugar de:
If img.Type = msoPicture Then img.Delete
If img.Type = msoTextBox Then img.Delete
poner
If img.Type = msoPicture or img.Type = msoTextBox Then img.Delete
Para recorrer las 40 hojas, puedes hacer un loop por las Sheets
FOR EACH sh IN Worksheets
IF sh.Name<>"Hoja1" THEN
sh.select
For Each img In ActiveSheet.Shapes
If Not Application.Intersect(img.TopLeftCell, Range("B6:L25")) Is Nothing Then
If img.Type = msoPicture or img.Type = msoTextBox Then img.Delete
End If
Next
End Sub
END IF
NEXT sh
Debería funcionar bien...
Saludos
Gracias Ismael
ResponderEliminarAcabado de probarlo, pero me da un error. He insertado en un módulo el código:
Sub borrarImagenesCuadrotexto()
Dim img As Shape
On Error Resume Next
FOR EACH sh IN Worksheets
IF sh.Name<>"Hoja1" THEN
sh.select
For Each img In ActiveSheet.Shapes
If Not Application.Intersect(img.TopLeftCell, Range("B6:L25")) Is Nothing Then
If img.Type = msoPicture or img.Type = msoTextBox Then img.Delete
End If
Next
End Sub
END IF
NEXT sh
Y me sale:
Error de compilación:
Bloque If sin End If
Lo que he hecho es cambiar el orden del código y he movido el "End Sub" al final del código, y me ha funcionado, no sé si es por eso que no corría, y si es esta la solución, pero mi problema es que ha borrado todas las imágenes desde la Hoja1, y debería ser a partir de la “Hoja6”.
Modifique en el código la "Hoja1" por la "Hoja6", pero igual se borran las imágenes en todas las Hojas, No sé si se puede modificar para que las imágenes se eliminen a partir de la "Hoja6" en adelante, siempre en el mismo rango.
Además quisiera saber si las imágenes borradas las esta moviendo algún sitio o las está eliminando
Gracias nuevamente
Hola Erick,
Eliminarcorrecto respecto al End Sub, fue un error de pegado...
respecto al borrado de imágenes no hay movimiento de ellas, y sí eliminación, fíjate en la propiedad .Delete que estás usando.
En cuanto a las hojas, lo que se hace es un Bucle que recorre TODAS las hojas.. en el ejemplo, comentabas que querías borrar las imágenes de todas las hojas a partir de la Hoja2 (es decir, menos la Hoja1) de ahí la solución..
Con el código empleado podrías incorporar a tu sentencia de control:
IF sh.Name<>"Hoja1" or sh.Name<>"Hoja2" or sh.Name<>"Hoja3" THEN
...
para evitar las hojas que no te interese borrar imágenes....
O bien optar por otro loop del tipo
For sh=6 to 40
Worksheets(sh).select
....
OJO!, la numeración podría no coincidir con el orden visible de tus hojas....
Saludos
Gracias Ismael
ResponderEliminarHe realizado la inserción correspondiente, insertado en un módulo el código:
Sub borrarImagenesCuadrotexto()
Dim img As Shape
On Error Resume Next
For Each sh In Worksheets
IF sh.Name<>"Hoja1" or sh.Name<>"Hoja2" or sh.Name<>"Hoja3" or sh.Name<>"Hoja4" or sh.Name<>"Hoja5" THEN
sh.Select
For Each img In ActiveSheet.Shapes
If Not Application.Intersect(img.TopLeftCell, Range("B6:L25")) Is Nothing Then
If img.Type = msoPicture Or img.Type = msoTextBox Then img.Delete
End If
Next
End If
Next sh
End Sub
Continúa igual el problema, porque borra las imágenes en el rango de todas las hojas, incluyendo la “Hoja1”, y con esta inserción no debería haber borrado las imágenes de la “Hoja1” a la “Hoja5”, no sé, si he cometido algún error en la estructura del código.
Gracias nuevamente
Saludos
Hola Erick,
Eliminar1-asegúrate que los nombres de las hojas son esos (Hoja1, Hoja2,..)
2-Prueba cambiando el 'OR' por 'AND':
IF sh.Name<>"Hoja1" AND sh.Name<>"Hoja2" AND sh.Name<>"Hoja3" AND sh.Name<>"Hoja4" AND sh.Name<>"Hoja5" THEN
3-También te propuse una segunda alternativa:
For sh=6 to 40
Worksheets(sh).select
....
Saludos cordiales
Gracias Ismael
ResponderEliminarHe reemplazado el “Or” por el “And”
IF sh.Name<>"Hoja1" And sh.Name<>"Hoja2" And sh.Name<>"Hoja3" And sh.Name<>"Hoja4" And sh.Name<>"Hoja5" Then
…..
Con este reemplazo, tampoco funciona, continua borrando todas las imagines de todas las Hojas
He probado realizando el cambio de la designación de las “Hoja1”,”Hoja2” ………., por sus verdaderos nombres y solo así se borran las imágenes de las hojas que deseo (Ejm: “Calendario” , “Listas”…..) empleando “And” , con “Or” no funciona; mi consulta es porque no responde al colocar con la “Hoja1”, “Hoja2” ……. y sí, colocando los nombres verdaderos de las hojas, me parece un caso curioso, ¿ Es esto es así?, ¿Cómo debería ser? Me parece que debería ser colocando “Hoja1”, Hoja2”…. Por si acaso yo tengo Excel 2010
Por otro lado empleando el otro loop recomendado:
For sh=6 to 40
Worksheets(sh).select
Para que funcione, ‘He tenido que designar las hojas, de acuerdo al orden como las visualizo en pantalla (contando), No como esta designadas las hojas en la Ficha Programador VB;
Por lo tanto: For sh=10 to 40 (De esta manera funciona). Para que coincida con lo que quiero borrar.
Por otra parte quise modificar las hojas donde se borraran las imágenes en estos rangos:
For sh=10 to 24 or Sh=31 to 40 y no funciona (quería borrar en estos dos grupos, empleando este loop), se podría borrar las imágenes en estos dos grupos empleando este Loop (For sh). ¿Cómo seria?
Gracias nuevamente por tu gran apoyo.
Saludos
Hola Erick,
Eliminarcada hoja tiene dos nombres, un CodeName y un Name (el nombre que vemos en las etiquetas de las hojas)... si estamos empleando la propiedad .Name es lógico que empleemos esos nombres.
En cuanto al segundo loop FOR x=6 to 40 ya te comentaba que debían estar ordenadas...
Para partir el loop deberá hacer dos loop diferentes.
Saludos
Buenas tardes,
ResponderEliminarexiste la posibilidad de identificar las imágenes que están enmarcadas dentro de una celda?? Yo hago coincidir las imagenes dentro de la celda y me gustaría poder eliminar las que estuvieran enmarcadas en una cleda específica.
Hola,
Eliminarpodrías identificarlas por su posición en esas celdas...
las imágenes tienen una propiedad .TopLeftCell y .bottomRightCell que identifican su posición
Echa un vistazo a este post:
http://excelforo.blogspot.com.es/2015/03/vba-borrar-imagenes-de-un-rango.html
Saludos
Buenas. Antes de todo gracias. Yo quiero borrar unas imágenes que he insertado en un ppt existente con una macro. Cómo lo hago? Sería ir a una diapositiva concreta y borrar la imagen. Así con varias diapositivas. Gracias
ResponderEliminarHola,
Eliminarla programación sería similar, pero no igual.. ya que al necesitar actuar sobre objetos/imágenes de una diapositiva dentro de un a presentación tendrás que emplear las propiedades correspondientes...
A modo de ejemplo de notación echa un vistazo a
http://excelforo.blogspot.com.es/2011/04/macro-para-copiar-y-pegar-un-rango-de.html
Saludos
Hola.
ResponderEliminarAyuda: Y si quiero eliminar más de una imagen, pero no todas, como dos o diez.
Mi problemas es que quiero que macros solo borre la o las últimas imágenes anteriores que por defecto
se acumulan una detrás de otra al ejecutar varias macros con imágenes, y que deje intacta la
imagen de la última macro que ejecuté.
Gracias de antemano.
Hola Sara,
Eliminarla cuestión es cómo identificas esas 'últimas imágenes', qué las hace diferentes al resto...
En principio todas las imágenes son iguales, cambiando el nombre de estas, así que si eres capaz de identificar el nombre las que no quieres borrar, podrás realizar un borrado de todas ellas excepto de esas en concreto.
No parece fácil en principio... quizá añadiendo al nombre de la imagen una secuencia temporal que luego se recuperará para saber cuál ha sido añadida en último lugar.
Saludos