Renombrar imágenes en Excel con VBA

Tengo un libro con varias imágenes por lo general 3, sucede que constantemente cambio esas imágenes y por lo tanto su nombre con el cual los reconoce VBA tbm cambia y tengo que cambiar mi código en VBA para que se adapte al nuevo nombre con el que esta, no se como podría hacer para antes de ejecutar mi código una macro renombre las imágenes ejemplo

Imagen 1, Imagen 2, Imagen 3... Y así dependiendo cuantas iamagenes tenga. Alguna guía

1 Respuesta

Respuesta
2

[Hola

Una idea es trabajar solo con los índices, así no habrá problema con tu macro

ActiveSheet. Pictures(2)

Obviamente si no es la hoja activa, solo reemplazas por el nombre.

Si igual necesariamente tienes que saber cuántas imágenes son (porque parece que no se sabe) y necesariamente, también, quieres cambiarle el nombre a todas, pues prueba así:

Dim nImagenes As Integer, x As Integer
nImagenes = ActiveSheet.Pictures.Count
For x = 1 To nImagenes
    ActiveSheet.Pictures(x).Name = "Rodrigo" & x
Next x

Comentas

Abraham Valencia

PD: Es domingo y si estás en Lima salió el sol, o sea: no trabajes jajajaj

Muchas Gracias amigo me sirvio de gran ayuda para una parte que no tenia clara, digame cual es la diferencia entre usar Shapes y Pictures para nombre o llamar imaganes esa duda no la tengo bien clara por favor

A diferencia de lo que las personas suelen creer, las imágenes y otros objetos no están en las celdas sino en lo que Microsoft llama "capa de dibujo", es decir están algo así como flotando encimas de las celdas. La colección de esos objetos es Shapes e incluye objetos ActiveX, imágenes, etc. ¿Qué es Pictures? (No confundir con la propiedad Picture de algunos objetos) Es una clase descontinuada a partir de Office 97 y que se mantiene por cuestiones de compatibilidad y que finalmente nunca fue retirada; entonces ¿son lo mismo? No, Pictures no incluye, por ejemplo, las autoformas que sí están incluidas en Shapes ¿qué usar? Si bien yo en este caso he usado Pictures (soy programador de "antaño"), normalmente prefiero usar Shapes.

Saludos]

Abraham Valencia

Y como seria el código usando shapes claro que haga lo mismo para ver los distintos puntos de vista amigo

Dim sh As Shape
Dim x As Integer
x = 1
For Each sh In ActiveSheet.Shapes
    If sh.Type = 13 Then
        sh.Name = "Rodrigo" & x
        x = x + 1
    End If
Next sh

13 es el tipo correspondiente a las imágenes insertadas en la hoja. Si tienes más objetos en la hoja, es mejor usar esto.

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas