Boucle sur 07-2009 / 08-2009 etc...

ConsultantJP

XLDnaute Occasionnel
Bonjour,

Je me retrouve dedans une petite problematique sur laquelle je ne trouve pas de solution.

Sur un fichier excel, dans la colonne A, j'ai toute les dates.

En VBA, je récuperer le min et le max de ces dates, puis le mois-année via ce résultat.

Je souhaite ensuite faire une boucle de type

For i = MoisduMin (07-2009) to MoisduMAX (02-2010)

et ce résultat allant renseigner une feuille excel, ligne par ligne.

Je peux faire fonctionner le for i sur les deux premiere chiffre mais la je bug surtout si on se retrouve à cheval sur 2 année comme dans mon excel, je en sais pas comment le faire compter jusqu'a 12 puis repartir sur du 01 et changer l'année....

Une idée ?
 

d.ryba

XLDnaute Junior
Re : Boucle sur 07-2009 / 08-2009 etc...

Bonjour,

Je ne sait pas si ça peut t'aider, mais as-tu pensé à convertir ton format (date) en format texte :

Code:
Format Date  => Format texte
   07-2009    =>     39995
   02-2010    =>     40210
A vrai dire je n'ai pas testé. Mais essayer toujours. Et tiens nous au courant.
 

d.ryba

XLDnaute Junior
Re : Boucle sur 07-2009 / 08-2009 etc...

En farafouillant dans mes macros, j'ai trouvé un bout de code (pas très joli, mais ça fonctionne) qui arrive à déterminer les jours -4/-3/-2/-1 par rapport à la date d'aujourd'hui.

Peux-être pourra-tu l'adapter pour passser de mois en mois et mes d'années en années.

Code:
Dim DateJourRU1 As String, DateJourRU2 As String, DateJourRU3 As String, DateJourRU4 As String, _
Dim jour As Integer
Dim mois_courant As String


If Len(Month(Now)) <> 2 Then            'ajout d'un 0
    mois_courant = "0" & Month(Now)     'si le numéro du mois est compris entre 1 (janv) et 9 (Sept)
End If                                  'afin d'avoir un numéro de mois toujours sur 2 caractères

jour = Format(Date, "d")

DateJourRU1 = Year(Now) & "_" & mois_courant & "_" & Day(Now) - 1
DateJourRU2 = Year(Now) & "_" & mois_courant & "_" & Day(Now) - 2
DateJourRU3 = Year(Now) & "_" & mois_courant & "_" & Day(Now) - 3
DateJourRU4 = Year(Now) & "_" & mois_courant & "_" & Day(Now) - 4
            
If jour <= "4" Then
    If Len(Month(Now - 4)) <> 2 Then
        mois_courant = "0" & Month(Now - 4)
    End If
    DateJourRU4 = Year(Now - 4) & "_" & mois_courant & "_" & Day(Now - 4)
        If jour <= "3" Then
            If Len(Month(Now - 3)) <> 2 Then
                mois_courant = "0" & Month(Now - 3)
            End If
            DateJourRU3 = Year(Now - 3) & "_" & mois_courant & "_" & Day(Now - 3)
                If jour <= "2" Then
                    If Len(Month(Now - 2)) <> 2 Then
                        mois_courant = "0" & Month(Now - 2)
                    End If
                    DateJourRU2 = Year(Now - 2) & "_" & mois_courant & "_" & Day(Now - 2)
                        If jour = "1" Then
                    If Len(Month(Now - 1)) <> 2 Then
                        mois_courant = "0" & Month(Now - 1)
                    End If
                            DateJourRU1 = Year(Now - 1) & "_" & mois_courant & "_" & Day(Now - 1)
                        End If
                End If
        End If
End If

Je reste a l'écoute du fil et si j'arrive à le modifier avant toi je le posterai.
 

Discussions similaires

Statistiques des forums

Discussions
312 447
Messages
2 088 494
Membres
103 870
dernier inscrit
didiexcel