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 que

Ma 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
    Wend

Salut Micka,

au-delà de l'écriture proprement dite, pourquoi fais-tu...

numJourActuel = numJourActuel - 1

Tu 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

Rechercher des sujets similaires à "comment sortir boucle while"