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 :

[VBA-E]Effacer les shapes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Par défaut [VBA-E]Effacer les shapes

    Un bug d'Excel m'ennuie un peu!(j'espère que c'est plutôt une erreur de ma part!

    Un programme me crée des shapes,jusque là tout va bien
    à chaque fois que je le relance j'efface les shapes de la feuille histoire que ce soi t un peu plus clair...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim forme As Shape
     
    For Each forme In Worksheets("feuil4").Shapes
       forme.Delete
    Next forme
    Quand je le lance j'obtiens l'erreur
    La méthode 'Delete' de l'objet 'Shape' a échoué
    suivi du
    Microsoft Excel a rencontré un problème et doit fermer. Nous vous prions de nous excuser pour le désagrément encouru.
    les infomations sur lesquelles vous travailliez peuvent avoir été perdues.
    Microsoft Excel peut tenter de les récupérer
    ...........
    Ah j'oubliai un détail intéressant.Quand j'utilise le débogueur(Pas à pas détaillé), il n'y a pas de problème...

    Quelqu'un aurait il une explication si vou plééé???

  2. #2
    Membre émérite
    Avatar de Catbull
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    542
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 542
    Par défaut
    Ca m'a l'air en effet d'être un bug. Chez moi ce code fonctionne très bien (Excel 2000 SP3).

    Peut-être que le classeur n'est plus intégre. Essaie de copier les feuilles de ton classeur dans un autre classeur ainsi que les macros pour voir si le problème persiste.

  3. #3
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Salut

    T'as essayé dans un compte à rebours?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim i As Integer
    For i = Feuil14.Shapes.Count to 1 Step -1
        Shapes(i).Delete
    Next
    [Edit] Apparemment, les indices des Shapes commencent à 1...

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    essai de voir quel "shape" provoque ton plantage ..:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dim forme As Shape
    For Each forme In Worksheets("feuil4").Shapes
       Debug.Print forme.Name
       Debug.Print forme.Type
       Stop
       forme.Delete
    Next forme
    le code s'arrête sur l'instruction Stop ... , observe le résultat dans fenêtre exécution, puis actionne F5 pour détruire le shape en cours.. ..

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Par défaut
    Salut
    Après un bon week-end à la campagne, je suis retourné à ce problème de "shapes". Je vous remercie tout d'abord pour vos réponses...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim Ftriangle As Shape
     
    For Each Ftriangle In Worksheets("feuil4").Shapes
       Debug.Print "nom :" & Ftriangle.Name; " - Type : " & Ftriangle.Type
       Stop
       Ftriangle.Delete
    Next Ftriangle
    Avec ce code, il n'y a bizzarement pas d'erreur.(Comme avec le pas à pas)
    En enlevant le Stop aussi...
    Mais en enlevant la ligne debug.print, et bin çà marche encore
    Ah bah non çà marche plus... (en clair çà marche nickel en pas à pas ou avec le stop sinon çà plante)



    Je viens de remarquer autre chose. Quand je lance la macro depuis la feuille ou se trouve les données, l'éxécution trouve la même erreur mais ne plante pas...Elle plante quand je resélectionne la feuille des formes (la "feuil4")...
    En revanche, quand la feuille ou sont dessinées mes formes est sélectionnée(des triangles en l'occurence), je me retrouve avec l'erreur...

    pourquoi VBA il est pas gentil avec moiiii?

  6. #6
    Membre confirmé Avatar de Ania
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 155
    Par défaut
    Juste comme ca parce que j'ai eu le cas une fois

    est-ce la feuille ou tu supprime les shape est active ou du moins visible quand tu lance ta fonction?

Discussions similaires

  1. Manipuler les Shapes par VBA Excel.
    Par Karimbon dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/10/2007, 18h37
  2. [VBA EXCEL] comment effacer les noms des querytables
    Par rafnt dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/10/2006, 17h06
  3. [VBA-E] Effacer les valeurs d'une plage de cellules
    Par jfamiens dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 10/06/2006, 11h07
  4. [VBA]effacer les espaces à ralonge dans des cellules
    Par repié dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/01/2006, 11h00
  5. [VBA-E] Effacer les doubles dans 1 colonne grace à une macro
    Par Stef.proxi dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/08/2004, 15h44

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