Comment déterminer en vba si une image existe
Résolu
mic13710
Messages postés
1165
Date d'inscription
Statut
Membre
Dernière intervention
-
mic13710 Messages postés 1165 Date d'inscription Statut Membre Dernière intervention -
mic13710 Messages postés 1165 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai le code suivant pour effacer une image et pour ensuite la remplacer:
Sheets("Impression").Select
ActiveSheet.Shapes("Image parcours").Delete
Le problème c'est que quand l'image n'existe pas, la macro plante.
Je voudrais donc vérifier que l'image existe avant de la supprimer et si elle n'existe pas de passer à l'instruction suivante. Comment puis-je faire ça?
Merci pour votre aide
J'ai le code suivant pour effacer une image et pour ensuite la remplacer:
Sheets("Impression").Select
ActiveSheet.Shapes("Image parcours").Delete
Le problème c'est que quand l'image n'existe pas, la macro plante.
Je voudrais donc vérifier que l'image existe avant de la supprimer et si elle n'existe pas de passer à l'instruction suivante. Comment puis-je faire ça?
Merci pour votre aide
Configuration: Windows 2000 Firefox 3.0.6
2 réponses
-
Bonjour,
L'instruction pour passer au delà de l'erreur est la suivante :
On Error Resume Next Sheets("Impression").Select ActiveSheet.Shapes("Image parcours").Delete
Ainsi en cas d'absence de l'image il passe à l'instruction suivante
AJOUT : Une autre solution un peu plus élégante :Dim Ma_Forme As Shape For Each Ma_Forme In Sheets("Impression").Shapes If Ma_Forme.Name = "Image parcours" Then Ma_Forme.Delete Exit For End If Next Ma_Forme
On boucle sur toute les formes de la feuille et si on trouve la bonne on la supprime.
A+ -
Merci Pilas31 pour ton aide.
C'est super, ça marche nickel!
J'avais essayé ce code avant de poster mon message, sans succès. J'avais sans doute dû le positionner au mauvais endroit. Pas encore au top avec VBA.
Certes, la deuxième solution est pas mal, mais est-ce bien utile de balayer toutes les images à partir du moment ou on sait ce que l'on cherche? A mon sens, on fait des boucles pour rien et ça ralenti l'exécution.
Merci encore.