Bonjour,

J'ai réalisé une petite macro sur Excel, en VB6. Le principe qui me pose problème est le suivant :
- chaque ligne comprends une date (colonne1) et une valeur (colonne5, qui peut être vide)
- les lignes sont rangées par ordre croissant des dates (de la plus ancienne à la plus récente)
- suivant une date de début (entrée dans le calendar1) et une date de fin (dans calendar2), on fait la somme des valeurs présentes entre ces 2 dates

Voici un bout de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Private Sub FaireSomme(NbrLignesRemplies)
    If (Calendar1.Value <= Calendar2.Value) Then
        deb = Calendar1.Value
        fin = Calendar2.Value
        For i = 2 To NbrLignesRemplies	'on commence par i=2 car la ligne 1 correspond aux titres des colonnes
            If (Not IsEmpty(Feuil1.Cells(i, 1)) And (Feuil1.Cells(i, 1) >= deb) And (Feuil1.Cells(i,1) <= fin)) Then
                'on fait la somme des valeurs dans "Total"
                Total = Total + Feuil1.Cells(i, 5)	'Total est initialisé à 0 avant de rentrer dans la fonction
 
                LabelValeur.Caption = "  Total : " & Total
                LabelValeur.Visible = True
                LabelCondition.Caption = "OK"
            Else
            LabelValeur.Visible = False
            CommandButtonOK.Visible = True
            LabelCondition.Caption = "condition non acceptée"
            End If
        Next i
    Else
        LabelCondition.Caption = "Erreur : Vérifiez que la date de début précède la date de fin."
        LabelCondition.Visible = True
        LabelValeur.Visible = False
        CommandButtonOK.Visible = True
    End If
    LabelCondition.Visible = True
End Sub
J'ai remarqué que lorsque je rajoute une nouvelle ligne avec une date plus récente, tant que pour le calcul de la somme je n'entre pas une date de fin > ou = à cette dernière, j'obtiens "condition non acceptée". La boucle ne se réalise pas et je ne comprends pas pourquoi.
Quelqu'un aurait-il déjà une explication à cela ?