Comment sortir d'une boucle While
Bonsoir tout le monde,
j'ai à nouveau besoin de vos lumières ce soir.
Je vous explique.
Je tente de faire ceci
1er Tant que a<b
2ième tant que autre test
instruction
a = a+1
Fin 2ième tant que
Fin 1er tant queMa question est comment sortir du 2ième tant que, une fois que mon incrémentation de ma variable "a" à été faite?
Dans mes tests je sors trop tard de mon 2ième tant que
Merci pour votre aide :-)
Bonsoir,
en VBA cela donne quoi ?
@ bientôt
LouReeD
Bonjour à tous,
je pense qu'il n'y a que toi qui connaisse la condition de sortie de boucle non ?
Comment veux-tu qu'on la devine...
eric
While numJourActuel < nbJourMois
While Left(Worksheets(nomFeuille).Range(ActiveCell.Address), 3) <> "SAM" And Left(Worksheets(nomFeuille).Range(ActiveCell.Address), 3) <> "DIM" And numJourActuel < nbJourMois
ActiveCell.Value = UCase(nomJourActuel & " " & numJourActuel)
ActiveCell.Offset(rowOffset:=-1, columnOffset:=25).Value = "EQUIPE " & NomPremiereEquipeDispos
IndexNomPremiereEquipeDispos = Application.Match(NomPremiereEquipeDispos, equipeGardeDispos, 0)
'+1 à l'index du tableau des équipes
If IndexNomPremiereEquipeDispos = 4 Then
IndexNomPremiereEquipeDispos = 1
Else
IndexNomPremiereEquipeDispos = IndexNomPremiereEquipeDispos + 1
End If
NomPremiereEquipeDispos = equipeGardeDispos(IndexNomPremiereEquipeDispos)
ActiveCell.Offset(rowOffset:=3, columnOffset:=0).Activate
dateSaisie = Format(DateAdd("d", 1, dateSaisie))
nomJourActuel = Format(dateSaisie, "dddd")
numJourActuel = Format(dateSaisie, "dd")
Wend
' Cas du samedi
If Left(Worksheets(nomFeuille).Range("C11"), 3) = "SAM" And numJourActuel < nbJourMois Then
'If Left(Worksheets(nomFeuille).Range("C11"), 3) = "SAM" Then
ActiveCell.Value = UCase(nomJourActuel & " " & numJourActuel)
ActiveCell.Offset(rowOffset:=-1, columnOffset:=1).Value = "EQUIPE " & Worksheets("CREATION").Range("B39")
IndexNomPremiereEquipeDispos = Application.Match(NomPremiereEquipeDispos, equipeGardeDispos, 0)
'+1 à l'index du tableau des équipes
If IndexNomPremiereEquipeDispos = 4 Then
IndexNomPremiereEquipeDispos = 1
Else
IndexNomPremiereEquipeDispos = IndexNomPremiereEquipeDispos + 1
End If
NomPremiereEquipeDispos = equipeGardeDispos(IndexNomPremiereEquipeDispos)
ActiveCell.Offset(rowOffset:=3, columnOffset:=0).Activate
dateSaisie = Format(DateAdd("d", 1, dateSaisie))
nomJourActuel = Format(dateSaisie, "dddd")
numJourActuel = Format(dateSaisie, "dd")
ElseIf numJourActuel < nbJourMois Then
ActiveCell.Value = UCase(nomJourActuel & " " & numJourActuel)
ActiveCell.Offset(rowOffset:=-1, columnOffset:=1).Value = ActiveCell.Offset(rowOffset:=-4, columnOffset:=25).Value
ActiveCell.Offset(rowOffset:=-1, columnOffset:=5).Value = "EQUIPE " & NomPremiereEquipeDispos
IndexNomPremiereEquipeDispos = Application.Match(NomPremiereEquipeDispos, equipeGardeDispos, 0)
'+1 à l'index du tableau des équipes
If IndexNomPremiereEquipeDispos = 4 Then
IndexNomPremiereEquipeDispos = 1
Else
IndexNomPremiereEquipeDispos = IndexNomPremiereEquipeDispos + 1
End If
NomPremiereEquipeDispos = equipeGardeDispos(IndexNomPremiereEquipeDispos)
ActiveCell.Offset(rowOffset:=3, columnOffset:=0).Activate
dateSaisie = Format(DateAdd("d", 1, dateSaisie))
nomJourActuel = Format(dateSaisie, "dddd")
numJourActuel = Format(dateSaisie, "dd")
End If
' Cas du dimanche
If Left(Worksheets(nomFeuille).Range("C11"), 3) = "DIM" And numJourActuel < nbJourMois Then
' If Left(Worksheets(nomFeuille).Range("C11"), 3) = "DIM" Then
ActiveCell.Value = UCase(nomJourActuel & " " & numJourActuel)
ActiveCell.Offset(rowOffset:=-1, columnOffset:=1).Value = "EQUIPE " & Worksheets("CREATION").Range("B39")
IndexNomPremiereEquipeDispos = Application.Match(NomPremiereEquipeDispos, equipeGardeDispos, 0)
'+1 à l'index du tableau des équipes
If IndexNomPremiereEquipeDispos = 4 Then
IndexNomPremiereEquipeDispos = 1
Else
IndexNomPremiereEquipeDispos = IndexNomPremiereEquipeDispos + 1
End If
NomPremiereEquipeDispos = equipeGardeDispos(IndexNomPremiereEquipeDispos)
ActiveCell.Offset(rowOffset:=0, columnOffset:=4).Value = "EQUIPE " & NomPremiereEquipeDispos
dateSaisie = Format(DateAdd("d", 1, dateSaisie))
nomJourActuel = Format(dateSaisie, "dddd")
numJourActuel = Format(dateSaisie, "dd")
ElseIf numJourActuel < nbJourMois Then
ActiveCell.Value = UCase(nomJourActuel & " " & numJourActuel)
ActiveCell.Offset(rowOffset:=-1, columnOffset:=1).Value = ActiveCell.Offset(rowOffset:=-4, columnOffset:=5).Value
ActiveCell.Offset(rowOffset:=-1, columnOffset:=5).Value = "EQUIPE " & NomPremiereEquipeDispos
IndexNomPremiereEquipeDispos = Application.Match(NomPremiereEquipeDispos, equipeGardeDispos, 0)
'+1 à l'index du tableau des équipes
If IndexNomPremiereEquipeDispos = 4 Then
IndexNomPremiereEquipeDispos = 1
Else
IndexNomPremiereEquipeDispos = IndexNomPremiereEquipeDispos + 1
End If
NomPremiereEquipeDispos = equipeGardeDispos(IndexNomPremiereEquipeDispos)
dateSaisie = Format(DateAdd("d", 1, dateSaisie))
nomJourActuel = Format(dateSaisie, "dddd")
numJourActuel = Format(dateSaisie, "dd")
ActiveCell.Offset(rowOffset:=4, columnOffset:=0).Activate
End If
numJourActuel = numJourActuel - 1
WendSalut Micka,
au-delà de l'écriture proprement dite, pourquoi fais-tu...
numJourActuel = numJourActuel - 1Tu crées un agenda, dirait-on, donc, tourné vers l'avenir : +1 serait plus approprié d'autant que numJourActuel doit être la date du jour.
Si tu es le 25 du mois et que tu lances ta macro, elle ne s'arrêtera qu'à 1 (25 boucles) alors que, en faisant numJourActuel = numJourActuel + 1 , nbJourMois ne comptant que 28-31 jours, la boucle devrait s'arrêter à nbJourMois - 1 = 2 à 5 boucles.
Non ?
A+
Effectivement :-)
Je m'en suis sorti autrement finalement, tard hier je n'avais plus les yeux en face des trous