|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mars 2008 Messages : 15 ![]() |
Bonjour,
J'ai une macro qui insère une ligne afin d'y ajouter un total calculé (je désire voir les totaux sur la première ligne de mon rapport et non la dernière). Elle fonctionne à merveille sur Excel 2003 mais pas en 2007. En fait c'est l'instruction suivante qui cause problème: Code :
Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove En passant, idem pour le ".Delete" qui détruit effectivement la ligne mais termine là, bêtement. Auriez-vous une piste de solution pour moi ? Merci infiniment (je commence à en perdre mes cheveux). |
|
|
00
|
|
|
#2 |
|
Membre actif
![]() Inscription : novembre 2008 Messages : 188 ![]() |
Une première piste est de regarder dans l'explorateur d'objets (F2) et plus particulièrement la méthode 'Insert' sur un objet Range pour voir si l'appel est bon.
Sinon poste-nous le reste du code et indique l'endroit où ça plante et/ou n'a pas le comportement attendu parce que sinon on va avoir du mal à deviner... |
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : mars 2008 Messages : 15 ![]() |
Bonjour Sclarckone,
J'ai utilisé "enregistrer macro" pour capturer la syntaxe exacte de l'insertion de ligne. Voici le code en question. Ce sont les lignes 7 et 22 qui causent l'interruption. Code :
|
||
|
|
00
|
|
|
#4 |
|
Membre actif
![]() Inscription : novembre 2008 Messages : 188 ![]() |
Qu'est-ce que la variable 'Totaux' à la ligne 7? Elle n'est pas définie avant...c'est une variable publique?
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : mars 2008 Messages : 15 ![]() |
Oui, c'est une variable public définie comme suit : Public Totaux As Integer
Elle me sert à retirer la ligne insérée lors d'un recalcule éventuel. Elle est également initialisée à 0 sur la relance du rapport (ce rapport extrait des données d'une base SQL selon des critères de recherches variables). |
|
|
00
|
|
|
#6 |
|
Membre actif
![]() Inscription : novembre 2008 Messages : 188 ![]() |
Et quand ça plante sur la ligne 7 ça donne quoi comme message d'erreur? Tu es sûr que 'Totaux' vaut effectivement quelque chose à ce moment (utilise le debugger pour vérifier)?
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : mars 2008 Messages : 15 ![]() |
La première fois 'totaux' = 0 et le code arrête soudainement sur après avoir exécuté la ligen 22. L'insertion se fait, mais le code arrête tout simplement.
Je le roule en debug et j'ai le même résultat: il arrête. Par la suite, 'totaux = 1' et là le code arrête après l'exécution de la ligne 7. Je suis dans le brouillard. Je pense que c'est une particularité de 2007 et/ou de Windows-7, mais quoi ? |
|
|
00
|
|
|
#8 |
![]() ![]() Alain GerardConsultant informatique Inscription : mai 2005 Messages : 3 675 ![]() |
Bonjour,
Vu que le problème se passe sur une modification du contenu de la feuille, ma question serait: Y a-t-il une ou des procédure(s) événementielle(s) sur la feuille concernée?
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres! Pensez aussi à voter pour les réponses qui vous ont aidés. ------------ Je dois beaucoup de mes connaissances à mes erreurs! |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : mars 2008 Messages : 15 ![]() |
Bonjour AlainTech,
Désolé du délais mais j'ai été absent durant plusieurs jours. Votre réponse m'a mené vers la solution. Quoique je n'ai pas trouvé l'évènement en question, le fait d'insérer "Application.ScreenUpdating = False" en début de macro a résolu le problème. Merci à tous pour votre aide.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com