XL 2013 [Résolu] Boucle FOR de 11 à 12 puis 1 à 10

apnart

XLDnaute Occasionnel
Bonjour,

Je me triture la tête dans tous les sens, et j'avoue ne pas trouver :-(

Pour les besoins d'un tableau qui représente une année fiscal qui commence en novembre et fini en octobre, j'ai besoin de faire une boucle FOR pour automatiser des entêtes de colonnes, mais cette boucle FOR devrait avoir comme boucle : 11, puis 12, puis 1, puis 2, ... puis 10 pour finir

Si vous aviez ça en réserve, ça allégerait considérablement mon code, car pour l'instant je n'ai pas fait ça avec la boucle, j'ai donc un code très répétitif :-(

Merci d'avance,
Bruno.
 

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Bonjour,
Pour les besoins d'un tableau qui représente une année fiscal qui commence en novembre et fini en octobre, j'ai besoin de faire une boucle FOR pour automatiser des entêtes de colonnes, mais cette boucle FOR devrait avoir comme boucle : 11, puis 12, puis 1, puis 2, ... puis 10 pour finir
VB:
Dim AnnéeFiscale As Integer , MoisRef As Integer
AnnéeFiscale=Iif(Month(Now)<11, Year(Now)-1, Year(Now))
For IDX = 1 To 12
MoisRef=Month(DateSerial(AnnéeFiscale,10+IDX,1)
MsgBox MoisRef
Next IDX
 

apnart

XLDnaute Occasionnel
Bonjour,

Désolé Cath, je pensais que juste la boucle suffisait à expliquer mon problème somme toute assez basique pour beaucoup d'entre vous :oops::(

Merci Philippe et Modeste, vous m'avez fait découvrir IIf que je ne connaissais pas, c'est exactement ce que je cherchais :):):):)

Encore merci à tous,
Amicalement,
Bruno.
 

apnart

XLDnaute Occasionnel
Merci Dranreb, merci pour ce code (que je n'ai pas trop compris ) mais qui fonctionne :)

Comment ça doit se lire ?

déjà la 1ère itération de N, je n'arrive pas à me l'expliquer.

on dit N = 0
Je comprends qu'il faut faire N+10 (donc N=10)
puis 10/12 et regarder le reste et ajouter 1
pour moi le reste est 4, si j'ajoute 1, ça donne 5

alors que pour de vrai, le test dans un msgbox m'a retourné 11 (ce que je voulais)

Vous pourriez m'expliquer le fonctionnement de cette super ligne ?

Merci d'avance
 

cathodique

XLDnaute Barbatruc
La fonction 'Mod' renvoie le reste d'une division.
Dans la formule de Dranreb;), N+10 est divisé par 12, puis prend le reste et lui ajoute 1.
Au final, le résultat est 11,12,1,2,3,4,5,6,7,8,9 et 10, d'où tous les mois d'exercice.

Voilà, j'espère que ça répond à ta question.
 

apnart

XLDnaute Occasionnel
:oops: houlà, moultes excuses, voilà que je ne sais plus poser une division à la main (le ne descendais pas le 10 à l'étape où il y va 0 fois)...

modulo.jpg


Merci à vous 2 pour cette révision ;)
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 325
Membres
102 862
dernier inscrit
Emma35400