Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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.
 

apnart

XLDnaute Occasionnel
En attentant un truc plus propre, j'ai fait ça (msgbox pour montrer le mois, mais je mettrai mon code plus complet à la place) :

For X = 11 To 12
'
MsgBox X

If X = 12 Then X = 0
If X = 10 Then Exit For

Next X
 

cathodique

XLDnaute Barbatruc
Bienvenue sur XLD,

Apparemment tu n'as pas lu la charte. Il faut joindre un petit fichier qui illustre ton problème, ça sera plus facile de comprendre ton problème et éventuellement servira à tester le code.

Bonne journée.
 

Modeste geedee

XLDnaute Barbatruc
Bonsour®
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

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
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)...



Merci à vous 2 pour cette révision
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…