Boucle for next avec date

Chasse

XLDnaute Occasionnel
Bonjour le forum

Je saisi dans un textbox un date

Seulement la boucle ne reconnait pas le format de la textbox.

Je vous met un fichier pour que vous me compreniez mieux
Code:
Private Sub CmdOK_Click()
Dim déb As Object, c As Long, rg As Object, Gest As Object
Set Gest = Sheets("Gestion Absence")

Set rg = Gest.Range("A3" & ":A38").Find(Nom.Value)


For c = 3 To 366

If Cells(3, c) = Me.début.Value Then

Cells(rg.Row, c) = "V"

Else
Cells(3, c).Select

End If
Next
End Sub


Private Sub UserForm_Initialize()
Dim Gest As Object

    Set Gest = Sheets("Gestion Absence")
    
Me.Nom.List = Gest.Range("A3:A" & Gest.Cells(Application.Rows.Count, 1).End(xlUp).Offset(2, 0).Row).Value

début.Value = Format(début.Value, "dd.mm.yyyy")
fin.Value = Format(fin.Value, "dd.mm.yyyy")
début.Text = Format(début.Value, "dd.mm.yyyy")

fin.Text = Format(Date, "dd.mm.yyyy")

End Sub
D'avance merci de votre aide
 

Pièces jointes

  • Essai vac.xlsm
    67.1 KB · Affichages: 39

Robert

XLDnaute Barbatruc
Re : Boucle for next avec date

Bonjour le fil, bonjour le forum,

Chasse il y a plusieurs incohérences dans ton code je me permets de te les signaler :
Code:
Private Sub CmdOK_Click()
Dim déb As Object 'cette variable n'est pas utilisée ailleurs dans le code !
Dim c As Long 'Integer est plus que suffisant
Dim rg As Object 'Range
Dim Gest As Object
Dim dif As Range

Set Gest = Sheets("Gestion Absence")
Set rg = Gest.Range("A3" & ":A38").Find(Nom.Value) 'Set rg = Gest.Range("A3:A38").Find(Nom.Value) !
For c = 3 To 366
    If Cells(3, c) = Cdate(Me.début.Value) Then
        Cells(rg.Row, c) = "V"
    Else
        Set dif = Cells(3, c)
        'Cells(3, c).Select 'inutile ça ne fait que ralentir le code
    End If
    dif.Select
Next
End Sub
ou alors
Code:
Private Sub CmdOK_Click()
Dim c As Integer
Dim rg As Range
Dim Gest As Object

Set Gest = Sheets("Gestion Absence")
Set rg = Gest.Range("A3:A38").Find(Nom.Value)
For c = 3 To 366
    If Cells(3, c) = CDate(Me.début.Value) Then
        Cells(rg.Row, c) = "V"
    Else
        Cells(3, c).select
        Exit sub
    End If
Next
End Sub
 

Chasse

XLDnaute Occasionnel
Re : Boucle for next avec date

Bonjour Robert
Je suis en plein chantier et comme j’essaye plusieurs outils, je laisse bêtement traîner ceux donc je n’est pas besoin .
Merci pour l’épuration, ainsi c’est plus lisible .

Bonne fin de journée