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

Problème Exit For

  • Initiateur de la discussion Initiateur de la discussion Calvus
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Calvus

XLDnaute Barbatruc
Bonsoir le forum,

Encore un truc bizarre, ou que je n'arrive pas à voir...

Dans cette partie de code :
VB:
 For k = 3 To 13 Step 2
            For l = 3 To 7
                DernJour = DateSerial(Feuil1.[L2], Month(1 & "/" & ActiveSheet.Name) + 1, 1) - 1
                If k = 13 And l < 5 Then Cellule_Actuelle = Day(ActiveSheet.Cells(k, l))
                    For a = 2 To 14
                    If ActiveSheet.Cells(k, l) = Feuil1.Cells(a, 16) And ActiveSheet.Cells(k, l) < DernJour Then
                    ActiveSheet.Cells(k + 1, l).Interior.Color = 9277427
                    l = l + 1:  Exit For
                            If l = 8 Then l = 3
                    End If
                Next

Le Exit For fonctionne parfaitement. On sort immédiatement de la boucle.

Dans cette partie de code :
VB:
Dim f, g
For f = 3 To 13 Step 2
For g = 3 To 8
If ActiveSheet.Cells(f, g) = Date_de_ce_Mois + 7 Then ActiveSheet.Cells(f + 1, g).Select: Exit For

Next
Next

Le Exit For ne fonctionne pas.

Pouvez vous me dire pourquoi ???
Je précise que la condition est bien vérifiée, que le If s'exécute, et que le Exit for est bien lu, mais la boucle continue.

Merci
 
Bonsoir Calvus,
La macro comporte 2 For, tu le fait sortir d'un For mais il reste sur l'autre For
Il faudrait mettre Exit Sub et si la macro doit continuer mettre ci-dessous exemple Goto suite
For f = 3 To 13 Step 2
For g = 3 To 8
If Cells(f, g) = Date_de_ce_Mois + 7 Then Cells(f + 1, g).Select: Goto suite
Next
Next

suite:
'et la suite de la macro

Bruno
 
Bonsoir Calvus,

As-tu testé avec exit for sur la ligne suivante? avec un petit ça aurait été mieux.
VB:
ActiveSheet.Cells(k + 1, l).Interior.Color = 9277427
                    l = l + 1
                     Exit For
                    If l = 8 Then l = 3
 
Bonjour,

n'aimant pas trop les goto j'aurais fait ça :
VB:
For f = 3 To 13 Step 2
    For g = 3 To 8
        If ActiveSheet.Cells(f, g) = Date_de_ce_Mois + 7 Then ActiveSheet.Cells(f + 1, g).Select: Exit For
    Next
    If g <9 Then Exit For
Next
eric
 
Bonjour le fil, le forum

@Calvus
Ma contribution du dimanche matin (au sortir de la douche) 😉
VB:
Sub TroisPourLePrix_D_Un()
DernJourA = DateSerial(Feuil1.[L2], Month(1 & "/" & ActiveSheet.Name) + 1, 1) - 1
DernJourB = DateSerial(Year(Date), Month(Date) + 1, 0)
DernJourC = CDate(Application.EoMonth(Date, 0))

MsgBox DernJourA
MsgBox DernJourB
MsgBox DernJourC
End Sub
 
Bonjour JM😉,

Il y a un message d'erreur d’exécution 13, 'incompatibilité de type' sur la ligne ci-dessous
VB:
DernJourA = DateSerial(Feuil1.[L2], Month(1 & "/" & ActiveSheet.Name) + 1, 1) - 1
Bon dimanche🙂
 
Re, bonjour cp4

C'est normal qu'il y ait un message d'erreur
puisque mon code s'adressait à Calvus (qui lui seul détient son classeur en captivité sur son disque dur 😉 )
Si tu ne veux pas de message d'erreur, voici une version spéciale cp4 😉
VB:
Sub TroisPourLePrix_D_Un()
'Pour cp4 ;)
Feuil1.[L2] = "2018": ActiveSheet.Name = "2018"

DernJourA = DateSerial(Feuil1.[L2], Month(1 & "/" & ActiveSheet.Name) + 1, 1) - 1
DernJourB = DateSerial(Year(Date), Month(Date) + 1, 0)
DernJourC = CDate(Application.EoMonth(Date, 0))

MsgBox DernJourA
MsgBox DernJourB
MsgBox DernJourC
End Sub
 
Merci pour le code. Même sans le fichier de Calvus, j'ai ouvert un fichier et dans la cellule L2 de la feuil1, j'ai mis une date. Normalement, le code n'aurait pas dû planté?🙁
Merci beaucoup.

edit: j'ai bien compris ton code, d'où le plantage avec une date en L2.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
352
Réponses
4
Affichages
258
Réponses
4
Affichages
685
Réponses
15
Affichages
606
Réponses
2
Affichages
224
Réponses
5
Affichages
826
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…