|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre éprouvé
![]() Duc Nihiliste Inscription : mars 2011 Messages : 395 ![]() |
Bonjour,
Afin de compiler des données mensuelles dans un onglet global, j'ai monté ce code : Code :
J'ai pensé à faire ceci comme ci-dessous pour parer à ce souci : Code :
Ce que je veux dire ici : C'est que si il n'y a plus d'onglet, alors on sort de la boucle. Pourriez-vous m'aider SVP ? Merci d'avance !
__________________
Cordialement, Runsh |
||||
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() Inscription : octobre 2008 Messages : 327 ![]() |
Bonjour RunSh,
peut-être simplement remplacer par Et je te conseille d'enlever le On error resume next...
__________________
|
|
|
00
|
|
|
#3 | |
|
Membre actif
![]() Inscription : novembre 2008 Messages : 188 ![]() |
Citation:
que Car la collection Sheets contiens tous les onglets du classeur alors que la collection WorkSheets ne contient que les feuilles de calcul. Tant qu'il n'y a que des feuilles de calcul, ça va mais s'il y a des feuilles graphiques ou autres... |
|
|
|
00
|
|
|
#4 |
|
Membre éprouvé
![]() Duc Nihiliste Inscription : mars 2011 Messages : 395 ![]() |
Bonjour tototiti2008, bonjour Sclarckone,
Merci pour vos réponses à tous les deux. Elles vont résoudre mon problème. Pour ma culture perso, je te remercie Sclarckone pour tes explications sur la différence entre "sheets" et "worksheets", encore quelque chose que je ne connaissais pas et qui va m'être bien utile (même si dans la pratique sur ce fichier là, je n'ai aucun problème car il n'y a que des feuilles de calculs). Par contre, tototiti2008, peux-tu m'expliquer m'expliquer pourquoi le est à enlever ? Dans ma tête, je pensais que ceci allait justement me permettre de sortir de la boucle dès qu'il ne trouverai plus d'onglet (puisque moins de 13 si tel est le cas). En tout cas encore merci !!
__________________
Cordialement, Runsh |
|
|
00
|
|
|
#5 |
|
Membre actif
![]() Inscription : novembre 2008 Messages : 188 ![]() |
est "dangereux" parce qu'il ne fait pas de distinction sur le type d'exception qui est levé. Du coup si une exception est levée dans une autre partie du code que celle où tu t'y attends, l'exécution va quand même continuer et tu peux obtenir un comportement imprévu et inexplicable (au moins à première vue).
C'est donc à utiliser avec beaucoup de précautions! Dans ton cas, c'est même inutile car utiliser: te permet de sortir de la boucle lorsqu'il n'y a plus de feuilles de calcul et sans lever d'exception. |
|
|
00
|
|
|
#6 | ||||
|
Membre confirmé
![]() Inscription : juillet 2007 Messages : 209 ![]() |
Bonjour,
j'utilise plutôt des structures de type Code :
n'est jamais vérifié car SN est initialisé à 2 et tu ne fais que l'incrémenter. Ta façon de faire pêche à cause des contraintes qu'elle impose : il faut que le fichier de consolidation soit ouvert en premier ou en dernier pour choisir les bornes 1 à 12 ou 2 à 13. Je te propose une autre structure pour avoir la liste ordonnée ex : Code :
|
||||
|
|
00
|
|
|
#7 |
|
Membre éprouvé
![]() Duc Nihiliste Inscription : mars 2011 Messages : 395 ![]() |
J'adore ce forum, on apprend à faire des choses de x manières différentes.
Merci pour l'eau que tu as apporté à mon moulin CodeFacile, je vais le tester et le mettre de côté, il me sera forcément utile car toutes mes macros font + ou - la même chose ^^
__________________
Cordialement, Runsh |
|
|
00
|
|
|
#8 | |
|
Membre éclairé
![]() Inscription : octobre 2008 Messages : 327 ![]() |
Bonjour Sclarckone, bonjour CodeFacile,
Re, Citation:
__________________
|
|
|
|
00
|
|
|
#9 |
|
Expert Confirmé
![]() Chercheur de bonheur Inscription : août 2007 Messages : 2 255 ![]() |
Bonjour,
petite remarque complémentaire sur la gestion en boucle des sheets (ou worksheets) via le code : C'est extrêmement dangereux car en finalité, tu ne connais pas vraiment le numéro de ta feuille, et ce n'est absolument pas parce que tu as 13 feuilles qu'elles portent le numéro de 2 à 13, et donc Sheet2 n'est pas nécessairement la deuxième feuille. Si par exemple tu as 3 feuilles et rajoute 1 feuille, tu peux courament avoir ta liste Microsoft Excel object dans vba qui est Sheet1(Sheet1) Sheet2(Sheet2) Sheet3(Sheet4) Sheet4(Sheet3) J'en ai fait les frais et tu peux chercher trèèèèèèèèèèès longtemps avant de trouver. Mais, c'était juste une remarque.
__________________
(\ _ /) Cordialement G@dz (='.'=) (")-(") Vous avez des neurones. Sollicitez-les. ![]() . Si vous êtes aidé, pensez à Voter.
|
|
|
00
|
|
|
#10 |
|
Membre éprouvé
![]() Duc Nihiliste Inscription : mars 2011 Messages : 395 ![]() |
C'est vrai tototiti2008, il faut être cohérent et bien penser à utiliser Worksheets ou Sheets partout, sinon ça peut vite faire n'importe quoi...
![]() Ta remarque est parfaitement vrai Godzestla, mais dans mon cas je n'ai aucun risque car ma première feuille est celle des données annuelles, et les 12 suivantes les mois de janvier à décembre. A moins que les technocrates décident de changer notre système calendaire, je n'ai pas de risque ^^
__________________
Cordialement, Runsh |
|
|
00
|
|
|
#11 | |
|
Membre éclairé
![]() Inscription : octobre 2008 Messages : 327 ![]() |
Bonjour Godzestla,
Re, @Godzestla : il faut bien faire la distinction entre le CodeName d'une feuille (nom dans Visual Basic Editor), le Name (nom de l'onglet) et le numéro. Ces 3 notions sont parfaitement indépendantes Comme le code de RunSh se base sur le numéro Citation:
__________________
|
|
|
|
00
|
|
|
#12 |
|
Expert Confirmé
![]() Chercheur de bonheur Inscription : août 2007 Messages : 2 255 ![]() |
@tototiti2008:
Bien d'accord avec toi. Mais personnellement je bouclerais sur toutes les feuilles en omettant donc celle dont le nom (.name) est celui de l'actuelle feuille 1. Ainsi, le blindage est....meilleur. Et puis SN et SNN, c'est pour moi très peu parlant en cas de maintenance peu fréquente et aussi sujet à gros soucis en cas d'erreur de frappe (1 N de plus et on parle d'autrechose). SN_Name serait bien meilleur que SNN. Mais bon, c'est en forgeant qu'on ....
__________________
(\ _ /) Cordialement G@dz (='.'=) (")-(") Vous avez des neurones. Sollicitez-les. ![]() . Si vous êtes aidé, pensez à Voter.
|
|
|
00
|
|
|
#13 |
|
Membre éprouvé
![]() Duc Nihiliste Inscription : mars 2011 Messages : 395 ![]() |
Je vais suivre vos conseils, il est vrai que c'est peu fiable, et que dans ma tête c'est facile car SN = Sheet Number et SNN = Sheet Number Name...
En tout cas merci pour toutes vos petites combines qui me seront très utiles. Bon allez, je vous laisse, je vais continuer à forger
__________________
Cordialement, Runsh |
|
|
00
|
|
|
#14 |
|
Expert Confirmé
![]() Chercheur de bonheur Inscription : août 2007 Messages : 2 255 ![]() |
Et les forgerons nihilistes ne sont sans doute pas légion.
__________________
(\ _ /) Cordialement G@dz (='.'=) (")-(") Vous avez des neurones. Sollicitez-les. ![]() . Si vous êtes aidé, pensez à Voter.
|
|
|
00
|
|
|
#15 |
|
Membre éprouvé
![]() Duc Nihiliste Inscription : mars 2011 Messages : 395 ![]() |
J'ai tiré ça de mon film culte...
J'avoue que je préfère "chercheur de bonheur", en espérant que tu puisses te targer de l'avoir trouvé ![]() Bonne journée Godzestla, et encore merci pour tous tes conseils utiles
__________________
Cordialement, Runsh |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com