IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

supprimer certaines images si elles existent


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 35
    Points : 23
    Points
    23
    Par défaut supprimer certaines images si elles existent
    Bonjour,

    Je cherche a supprimer certaines images dont je connais le nom, mais elle sont aléatoirement presente, parfois elles sont présentes sur le fichier, parfois elles ne le sont pas.

    Si j'utilise un code bête et mechant, le code bug en me disant que le nom n'existe pas,
    Si vous pouvez m'aider

    J'ai essayé plusieurs codes, le dernier que je trouve logique pour moi est celui ci mais il ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
     		Sub effacer_images()
        With Worksheets("calcul")
            Dim image As Shape
     
            For Each image In ActiveSheet.Shapes
                If image.Name = "img1" Then
                    .Shapes.Range(Array("img1")).Delete
     
                ElseIf image.Name = "img2" Then
     
                    .Shapes.Range(Array("img2")).Delete
     
                ElseIf image.Name = "img3"Then
                    .Shapes.Range(Array("img3")).Delete
     
                ElseIf image.Name = "img4" Then
                    .Shapes.Range(Array("img4")).Delete
    '(etc)
     
                End If
     
            Next
        End With

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bonsoir
    et ca va jusqu'à combien "img" & X

    est ce qu'il n'y a pas des trou dans les nom du genre img10 et img 12 mais pas img11

    en l'état de ta description c'est pas facile

    d'autant plus que img1,img2,etc est déjà utilisé par le sheets, se sont des address valides de cellules existantes c a n'est donc pas une bonne idée de les avoir nommées ainsi dans un sheets


    dans le doute au lieu d' aller de 1 a X sans savoir quand s'arrêter, je te propose de faire seulement autant de boucles que de shapes dans le sheets et d'incrémenter une variable
    avec cette variable tu reconstruit le nom et tu instancie un object shape avec
    si il est pas nothing ben tu supprime
    en les ayant nommées autrement bien sur

    donc au cas ou les nom ne sont pas dans le même ordre que celui de leur création et qu'il y a d'autre shapes et bouton


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test()
        Dim shp As Shape,i as long
        For Each shp In ActiveSheet.Shapes
           i = i + 1
           Set shp = ActiveSheet.Shapes("toto" & i) 'toto1,toto2,toto3,ect.....
           If Not shp Is Nothing Then shp.Delete
    Next
    End Sub
    une condition aussi est que il n'y ai pas une shapes "toto20" si tu n'a que 19 shapes
    sinon effectivement la boucle devra se faire avec une variable long mais je vois la un défaut de conception dans le raisonnement
    j'ai tout dis
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

Discussions similaires

  1. Supprimer plusieurs colonnes si elles existent
    Par nabil-karim dans le forum Requêtes
    Réponses: 1
    Dernier message: 05/05/2017, 15h58
  2. [XL-2003] Supprimer une feuille si elle existe, sinon la créer
    Par nekcorp dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/10/2009, 11h03
  3. supprimer une table si elle existe.
    Par dddd86 dans le forum SQL
    Réponses: 3
    Dernier message: 18/06/2009, 09h49
  4. Réponses: 1
    Dernier message: 11/08/2006, 13h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo