Vba-problème de vidage presse papier ?

Fermé
ccm81 Messages postés 10854 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 26 avril 2024 - Modifié par ccm81 le 20/09/2012 à 10:35
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 21 sept. 2012 à 15:59
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

ccm81 Messages postés 10854 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 26 avril 2024 2 404
20 sept. 2012 à 10:36
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
20 sept. 2012 à 11:09
Bonjour,

pour vider le presse papier

https://excel.developpez.com/faq/?page=PressePapier#ViderPressePapier

en espèrant que....
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 20/09/2012 à 11:18
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
ccm81 Messages postés 10854 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 26 avril 2024 2 404
Modifié par ccm81 le 20/09/2012 à 11:46
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
20 sept. 2012 à 11:49
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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
20 sept. 2012 à 13:51
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
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
ccm81 Messages postés 10854 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 26 avril 2024 2 404
20 sept. 2012 à 14:52
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
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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 20/09/2012 à 15:19
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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
21 sept. 2012 à 10:59
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
ccm81 Messages postés 10854 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 26 avril 2024 2 404
Modifié par ccm81 le 21/09/2012 à 11:55
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
Utilisateur anonyme
21 sept. 2012 à 12:54
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
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
Modifié par eriiic le 21/09/2012 à 13:17
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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 21/09/2012 à 16:00
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