Vba-problème de vidage presse papier ?

Bonjour,

Je suis sous excel 2002
lorsque j'exécute la copie du graphique (feuille données) dans les feuilles graphiques, ça se passe bien
je fais un RAZ pour nettoyer les feuilles graphiques
je relance une copie, et ça plante sur l'instruction
Sheets(nomFG & t).Paste
après avoir copié 80 graphiques
j'ai pensé à un problème de vidage du presse papier, j'ai tenté
1. Application.CutCopyMode = False
2. un code trouvé sur le forum
mais ça plante toujours

RQ. en fermant excel et en relançant, ça (re)fonctionne

https://www.cjoint.com/?3Iuj3rp8spF

y a t'il une solution?
le problème est il ailleurs?

merci

14 réponses

  1. je crois que je me suis focalisé à tort sur ce pauvre presse papier, en effet une fois le plantage obtenu, le "coller" n'est plus disponible ....
    à moins que ...
    0
    1. Contributeur
      Bonjour,
      J'ai testé ton classeur et chez moi il fonctionne impec en 7... secondes
      Avec Excel 2007
      Je vais essayé avec le 2000
      A+
      Edit: avec le 2000 c'est en 2 secondes ?

      Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
      NOTE : Je ne répond pas aux MP pour les questions techniques.
      0
      1. bonjour à tous les deux

        > lermite
        merci d'avoir essayé
        1. avec excel 2002 c'est 2,4 s
        2. as tu essayé RAZ puis relancé la copie? et tu n'as pas de plantage?

        > michel
        j'ai essayé ta proposition, mais c'est toujours le même problème

        cordialement
        0
        1. Contributeur
          Re,
          Je n'avais pas fait la manip, maintenant c'est fait et effectivement ça plante/Plantait
          J'ai d'abord fait quelques modif sur le 2007 ensuite tester 4 fois avec RAZ ->> c'est OK
          Par contre sur le 2000 j'ai toujours une erreur, différente mais bloque toujours Excel
          Semblerait que c'est une erreur de compatibilité d'excel avec Vista ??
          Avec le 2000 c'est aussi dans les 2 secondes
          Je continue de chercher.
          0
          1. Contributeur
            Avec le 2000
            Excel crée un grand nombre de feuille graph invisibles (50) et je ne trouve pas le moyen de les effacés.
            Je peu les voir sur le 2007
            Voir l'image
            J'ai recréer un nouveau classeur sur le 2007 et là pas de feuille en trop même après 4 RAZ.
            J'ai réouvert ce même classeur avec le 2000... Plantage après la RAZ et de nouveau tout les graphs sur le 2007.
            Tant qu'ont trouve pas le moyen de supprimer toutes les instances de Graph ça marchera pas.
            Note que cela semble bien un problème d'incompatibilité comme dis plus haut.
            A+
            0
            1. Bonjour,

              J'ai aussi pris le temps de tester le classeur.

              OF2K7 - Window Vista -> 13 secondes [ OK - RAZ ] plus de 4 fois

              OF2K7 - Window Srv 2K3 -> 5 secondes [ OK - RAZ ] plus de 4 fois

              À noter que dans le classeur soumis, il y a au moins une cellule nommé [ L2 ] = n

              j'ai aussi ajouté le code suivant pour savoir à tout moment l'état du ClipBoard

              Private Declare Function CountClipboardFormats Lib "user32" () As Long  
              Function IsClipboardEmpty() As Boolean  
                  IsClipboardEmpty = (CountClipboardFormats = 0)  
              End Function  
              '  
              


              et dans chaque routine :

              Sheets(nomFD).Range(celn).offset(2,0).Value = IsClipboardEmpty

              Le problème d'incompatibilité semble la cause, d'accord avec lermite.

              Cdt

              Lupin
              0
              1. re

                merci lermite, merci Lupin

                il va donc falloir faire avec, du moins avec excel 2002 et Vista!
                c'était pour répondre à
                https://forums.commentcamarche.net/forum/affich-26090053-iteration-selection-plages-de-donnees-excel#p26102722
                reste à espérer que Tiphaine n'aura pas d'ennui, encore que parti comme c'est parti .... sinon, je vais devoir découper les copies en tranches raisonnables, c'est quand même frustrant !!!

                cordialement
                0
                1. re:

                  Un indice serait de savoir, quel Service Pack sont installés pour Windows Vista
                  et quel Service Pack pour Excel 2K2.

                  Ça ne donnera pas nécessairement une réponse puisque l'ordre d'installation
                  est aussi importante, mais si l'un diffère de l'autre, alors l'indice est valable.

                  Cdt

                  Lupin
                  0
              2. Contributeur
                Tiphaine ne fait aucune allusion à sa version d'Excel.
                Si c'est 2007 ou > elle n'aura aucun problème.
                A condition que...
                Tu refasse ton classeur sur un nouveau classeur et que tu ne le test pas.
                A+
                EDIT: demande lui sa version.

                Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
                NOTE : Je ne répond pas aux MP pour les questions techniques.
                0
                1. Contributeur
                  Re,
                  Pour Info.
                  Tu peu simplifier..
                  For nuf = 1 To nbf
                    If Left(Sheets(nuf).Name, 2) = nomFG Then
                      Sheets(nuf).ChartObjects.Delete
                    '  nbgr = Sheets(nuf).ChartObjects.Count
                    '  For nugr = nbgr To 1 Step -1
                    '    Sheets(nuf).ChartObjects(nugr).Delete
                    '  Next nugr
                      End If
                  Next nuf 

                  Mais aussi, quand ont a une procédure qui travail sur plusieurs feuilles il est préférable de la mettre dans un module général.
                  Note que sur ton exemple ça ne pose pas de problème
                  Cdlt.

                  0
                  1. re

                    > lermite

                    merci pour le ChartObjects.Delete , je vais faire la modif du code de la RAZ
                    pour ce qui est de ta remarque, je note pour la prochaine fois

                    pour l'environnement de Tiphaine, je n'ai pu avoir que sa version de windows (7) donc de forte chances que son excel soit récent

                    bonne journée

                    cordialement
                    0
                    1. Bonjour,

                      Hier, j'ai testé avec Vista en Excel 2K2, et ça plante après chaque RAZ.

                      J'ai aussi eu un problème comme spécifié par lermite, et j'ai du déplacer
                      mon code dans un module. Je n'ai pas pu faire le test hier, mais c"était
                      mon intuition de transférer le code dans un module.

                      Je crois que la remarque de lermite est très pertinante.

                      Cdt

                      Lupin
                      0
                      1. Contributeur
                        Bonjour à tous,

                        Excel crée un grand nombre de feuille graph invisibles (50) et je ne trouve pas le moyen de les effacés.

                        Je vais peut être dire une bêtise mais tu supprimes les graphs mais pas les feuilles type graph :
                        ActiveWorkbook.Charts.Delete
                        les supprimes toutes.

                        Ou bien si tu dois en conserver qcq'unes tester le type et/ou le nom et supprimer la feuille :
                        For nuf = 1 To nbf
                        If Sheets(nuf).Type = 3 And Left(Sheets(nuf).Name, 2 = "Gr") Then Sheets(nuf).Delete
                        Next nuf

                        eric

                        Jamais tu ne répondras à un mp non sollicité...
                        Bon, ça c'est fait.
                        0
                        1. Contributeur
                          Bonjour Eric,
                          J'ai déjà tester ça, le problème c'est que ces feuilles graph ne sont pas accessibles d'ou ma conclusion d'une incompatibilité, en tout cas, quand je vais plus loin dans le débogage c'est ce que répond Windows..
                          Avec 2000 ont les "vois" pas.
                          Avec 2007 ont les "vois" mais impossible de les supprimés. (voir mon image)
                          Si tu fais un Sheets.count elle n'existe pas.
                          A+

                          Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
                          NOTE : Je ne répond pas aux MP pour les questions techniques.
                          0