While avec 3 conditions (condition sur la date ne fonctionne pas)

taupivin

XLDnaute Junior
Bonjour,

je vous demande de l'aide car je sèche totalement sur mon problème.

Dans un while je teste 3 conditions.
Si toutes les conditions sont rempli je descend d'une ligne sinon je sors du while.

Après divers essais, je m'aperçois que les conditions "cellule différent de vide " et cellule différent de ma variable "nom" fonctionnent. Toutefois la dernière condition, celle de la date n'a pas l'air de fonctionner.

J'ai dù faire une boulette mais je vois pas où.
Merci par avance pour votre aide :)

Code:
Dim ligne As Integer
'**********Gestion des dates
Private Sub CommandButton1_Click() 'recule dans le temps
DateDonnées = DateDonnées - 1
Label1.Caption = DateDonnées
End Sub

Private Sub CommandButton2_Click() 'avance dans le temps
DateDonnées = DateDonnées + 1
Label1.Caption = DateDonnées
End Sub

Private Sub CommandButton3_Click() 'incrémentation de la base de données

With Sheets("Base de données")
    While .Cells(ligne, 2) <> nom And .Cells(ligne, 1) <> DateDonnées And .Cells(ligne, 1) <> ""
        ligne = ligne + 1
    Wend
    MsgBox DateDonnées & " " & nom & " " & ligne
    
    .Cells(ligne, 1) = DateDonnées
    .Cells(ligne, 2) = nom
    .Cells(ligne, 3) = TextBox1.Value
    .Cells(ligne, 4) = TextBox2.Value
    .Cells(ligne, 5) = TextBox3.Value
    .Cells(ligne, 6) = TextBox4.Value
    
End With

End Sub

Private Sub UserForm_Initialize()

ligne = 2

DateDonnées = Date 'initialisation de la variable DateDonnées = date du jour
Label1.Caption = DateDonnées
Label2.Caption = nom

With Sheets("Base de données")
    While .Cells(ligne, 2) <> nom And .Cells(ligne, 1) <> DateDonnées And .Cells(ligne, 1) <> ""
        ligne = ligne + 1
    Wend
    
    If .Cells(ligne, 3) = "" Then
        TextBox1.Value = Format("0000", "hh:mm")
    Else: TextBox1.Value = Format(.Cells(ligne, 3), "hh:mm")
    End If
    
    If .Cells(ligne, 4) = "" Then
        TextBox2.Value = Format("0000", "hh:mm")
    Else: TextBox2.Value = Format(.Cells(ligne, 4), "hh:mm")
    End If
    
    If .Cells(ligne, 5) = "" Then
        TextBox3.Value = Format("0000", "hh:mm")
    Else: TextBox3.Value = Format(.Cells(ligne, 5), "hh:mm")
    End If
    
    If .Cells(ligne, 6) = "" Then
        TextBox4.Value = Format("0000", "hh:mm")
    Else: TextBox4.Value = Format(.Cells(ligne, 6), "hh:mm")
    End If
    
End With

End Sub
 

Pièces jointes

  • 00.01.xlsm
    44.8 KB · Affichages: 58

sousou

XLDnaute Barbatruc
Re : While avec 3 conditions (condition sur la date ne fonctionne pas)

Bonjour
Certainement un probleme de format de données
Test cellules sont interprétées comme des date et pas dans ton userform
ajoute cdate(datesdonnées)
Je n'ai pas testé
 

taupivin

XLDnaute Junior
Re : While avec 3 conditions (condition sur la date ne fonctionne pas)

Bonjour sousou,

Tout d'abord merci d'avoir passer du temps sur mon problème :)

J'ai tester avec Cdate mais cela ne change rien.
Je déclare ma variable Datedonnées as date donc logiquement cette variable est une date. Je la compare ensuite avec la valeur de ma cellule qui est aussi une date...

Une autre idée ?
 

sousou

XLDnaute Barbatruc
Re : While avec 3 conditions (condition sur la date ne fonctionne pas)

Bonjour

J'ai pris le temps de regarder ton fichier,
Tes conditions fonctionnent bien, mais je pense que tu t'es trompé en mettant des And
je pense que se sont des or que tu souhaites( si l'une des conditions n'est pas remplis)
Avec un And les trois conditions doivent être remplis.
 

Statistiques des forums

Discussions
312 103
Messages
2 085 313
Membres
102 860
dernier inscrit
fredo67