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
A voir également:
- Comment déterminer en vba si une image existe
- Légender une image - Guide
- Image iso - Guide
- Transformer une image en icone - Guide
- Comment mettre une image en filigrane sur word - Guide
- Comment rechercher une image sur google - Guide
2 réponses
Bonjour,
L'instruction pour passer au delà de l'erreur est la suivante :
Ainsi en cas d'absence de l'image il passe à l'instruction suivante
AJOUT : Une autre solution un peu plus élégante :
On boucle sur toute les formes de la feuille et si on trouve la bonne on la supprime.
A+
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.
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.