Boucle date

Résolu/Fermé
massimo888 Messages postés 203 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 7 avril 2017 - 6 avril 2017 à 17:41
massimo888 Messages postés 203 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 7 avril 2017 - 7 avril 2017 à 14:22
Bonjour,

J'ai un petit soucis avec mon fichier excel.

J'aimerais faire défiler en vba les dates dans une même cellule dans l'ordre décroissant. De Décembre à Janvier et interrompre la boucle dès que la cellule voisine passe de "-" à une valeur.

Exemple:
A1 = "-" => A2 = Décembre-17
A1 = 56 => A2 = Mars-17

Mon code:

Sub test()

do while Cells(1,2)="-"

Cells(1,1)="12-01-17"
Cells(1,1)="11-01-17"
Cells(1,1)="10-01-17"
.
.
.
Cells(1,1)="01-01-17"

end sub


En vous remerciant.

1 réponse

Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
6 avril 2017 à 18:18
Bonjour,

Sub essai()
    
    For k = 12 To 1 Step -1
        Cells(1, 1).Value = DateSerial(2017, 12, k)
        If Cells(1, 2).Value <> "-" Then Exit For
    Next k
    
End Sub


A+
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
7 avril 2017 à 08:51
Pardon, c'est plutôt ça :

Sub essai()

For k = 12 To 1 Step -1
Cells(1, 1).Value = DateSerial(2017, k, 1)
If Cells(1, 2).Value <> "-" Then Exit For
Next k

End Sub
0
massimo888 Messages postés 203 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 7 avril 2017
7 avril 2017 à 14:22
Tout d'abord Merci beaucoup pour la solution, elle marche nickel!
Ensuite voici le code dans une boucle pour avoir les lignes que l'on veut:

Sub essai()
For i = 4 To 18

For k = 12 To 1 Step -1
Cells(i, 9).Value = DateSerial(2017, k, 1)
If Cells(i, 10).Value <> "-" Then Exit For
Next k
Next i
End Sub
0