Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion isa44
  • 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 !

isa44

XLDnaute Occasionnel
Bonjour , j'ai besoin d'aide pour ce code :

Code:
Option Explicit
Dim I As Integer
Public MaDate As Date
Dim PremJour As Date

Function Suivante()

' Si la date suivante se trouve soit dans la colonne S11 soit dans T11 ou les 2 lancer la fonction Anniversaire
    On Error Resume Next
    I = 1
    PremJour = MaDate
    PremJour = PremJour + 1
    Do While Day(PremJour) & Month(PremJour) <> Day(MaDate) & Month(MaDate)
        Do While Range("[Car]Fichier!A11").Offset(I, 0) <> ""
            If Range("[Car]Fichier!S11").Offset(I, 0) <> "" Then
                If Day(Range("[Car]Fichier!S11").Offset(I, 0)) & Month(Range("[Car]Fichier!S11").Offset(I, 0)) = Day(PremJour) & Month(PremJour) Then
                    
               
                ' If Range("[Car]Fichier!T11").Offset(I, 0) <> "" Then
               ' If Day(Range("[Car]Fichier!T11").Offset(I, 0)) & Month(Range("[Car]Fichier!T11").Offset(I, 0)) = Day(PremJour) & Month(PremJour) Then
                    
                    
                    
                    MaDate = PremJour
                    Anniversaire
                    
                    Exit Function
                End If
            End If
            I = I + 1
        Loop
        I = 1
        PremJour = PremJour + 1
    Loop
    
    
End Function


Si la date se trouve soit dans la colonne S11 , soit dans la colonne T11 ou les 2 lancer "Anniversaire"

Merci pour votre aide
 
Re : Do while

Salut Isa44,

Si j'ai bien compris, essaye ce code
Code:
Option Explicit
Dim I As Integer
Public MaDate As Date
Dim PremJour As Date
Dim FlgFind(2) As Boolean
Function Suivante()
  ' Si la date suivante se trouve soit dans la colonne S11 soit dans T11 ou les 2 lancer la fonction Anniversaire
  On Error Resume Next
  I = 1
  PremJour = MaDate
  PremJour = PremJour + 1
  Do While Day(PremJour) & Month(PremJour) <> Day(MaDate) & Month(MaDate)
    Do While Range("[Car]Fichier!A11").Offset(I, 0) <> ""
      ' Mettre les FLAG à FAUX
      FlgFind(1) = False: FlgFind(2) = False
      ' Tester chaque cellule
      If Range("[Car]Fichier!S11").Offset(I, 0) <> "" Then
        If Day(Range("[Car]Fichier!S11").Offset(I, 0)) & Month(Range("[Car]Fichier!S11").Offset(I, 0)) = Day(PremJour) & Month(PremJour) Then
          MaDate = PremJour
          Anniversaire
          FlgFind(1) = True ' Flag date trouvée en S11
        End If
      End If
      If Range("[Car]Fichier!T11").Offset(I, 0) <> "" Then
        If Day(Range("[Car]Fichier!T11").Offset(I, 0)) & Month(Range("[Car]Fichier!T11").Offset(I, 0)) = Day(PremJour) & Month(PremJour) Then
          MaDate = PremJour
          Anniversaire
          FlgFind(2) = True ' Flag date trouvée en T11
        End If
      End If
      ' Sort de la fonction si date trouvée
      If FlgFind(1) = True Or FlgFind(2) = True Then Exit Function
      I = I + 1
    Loop
    I = 1
    PremJour = PremJour + 1
  Loop
End Function

A+
 
- 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
2
Affichages
411
  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
362
Réponses
5
Affichages
916
Réponses
15
Affichages
793
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…