Format de date dans une text box

Je récupère dans la textbox d'un userform la date écrite en format jjmmaa située dans la cellule "zaza" Pour la traiter par VBA il faut qu'elle soit en anglais. Comment imposer un format dans la textbox ?

textbox1.text=format(range(zaza),"dd.mm.yyyy")

Auteur :

Mots clefs associés à cette page : , , , , ,

Géré dates et heures dans un formulaire et leur conformité

Bonjour à tous,

J'ai cherché un peu partout, mais comme je n'étais pas encore inscrit sur le site, je n'ai pu télécharger vos exemples. Du coup, j'ai créé ma propre routine, et j'espère qu'elle pourra aider quelqu'un. Elle teste la conformité des dates (avec une combobox et des valeurs par défaut dans le fichier d'origine) et heures (texbox) par rapport au format (dont la date sur 10 caractères et l'heure avec au moins un ":"), et le bornage des dates entre 2 limites. Ces 2 données déclenchent ensuite un certain nombre de calculs qui s'insèrent automatiquement sous forme d'une nouvelle ligne dans le fichier d'origine. Il y a peut être plus simple, et je suis à l'écoute de toutes vos suggestions. Sincèrement

PS1 : mon formulaire a 3 boutons, pour ajouter, supprimer et sortir
PS2 : étant nouveau sur le site, je n'ai pas trouvé comment ajouter une pièce jointe

Private Sub Cmdannuler_Click()

lignetempo = lignetempo - 1 '<===== lignetempo est la dernière ligne du fichier d'origine
Rows(lignetempo & ":" & lignetempo).Select
Selection.Delete Shift:=xlUp
lignetempo = lignetempo - 1

Unload Me

End Sub

Private Sub Cmdfinsaisie_Click()

sortie = 1 '<===== coupe la boucle une fois sorti du formulaire pour accéder au traitement
lignetempo = lignetempo - 1

Unload Me

End Sub

Private Sub Cmdvalider_Click()

' Test de la valeur de la date rentrée

If Me.Txtdate = "" Then
MsgBox "Veuillez rentrer une date"
Me.Txtdate.SetFocus
Exit Sub
End If

For tempo0 = 29 To 1 Step -1 '<===== recherche la dernière ligne dans la liste des dates prédéfinies en colonne AA pour la combobox, la première date du bornage étant sur la ligne 1
If Range("aa" & tempo0) <> "" Then GoTo suitetxtdate
Next tempo0

suitetxtdate:

If CDate(Me.Txtdate) < CDate(Range("aa1")) Or CDate(Me.Txtdate) > CDate(Range("aa" & tempo0)) Then
MsgBox "Date non valide ou en dehors de la période. Veuiller corriger"
Me.Txtdate.SetFocus
Exit Sub
End If

If Len(Me.Txtdate) <= 8 Then
MsgBox "Date non valide, l'année doit être rentrée sur 4 chiffres. Veuiller corriger"
Me.Txtdate.SetFocus
Exit Sub
End If

' Test de la valeur de l'heure rentrée

If Me.Txtheure = "" Then
MsgBox "Veuillez rentrer une heure"
Me.Txtheure.SetFocus
Exit Sub
End If

On Error GoTo suitetxtheure
tempo0 = CDate(Me.Txtheure)

If CDate(Me.Txtheure) >= 1 Or CDate(Me.Txtheure) < 0 Then
MsgBox "Heure non valide. Veuiller corriger"
Me.Txtheure.SetFocus
Exit Sub
End If

GoTo Rentreedonnees

suitetxtheure:

MsgBox "Heure non valide. Veuiller corriger"
Err.Clear
Me.Txtheure.SetFocus
Exit Sub

' Rentrée des données dans la feuille et calcul du jour et du numéro de semaine

Rentreedonnees:

On Error GoTo 0

Sheets(3).Range("D" & lignetempo) = Me.Txtdate
Sheets(3).Range("E" & lignetempo) = "=Value(RC[-1])"
Sheets(3).Range("F" & lignetempo) = Format(Me.Txtheure, "hh:mm:ss")
Sheets(3).Range("G" & lignetempo) = 0.55
Sheets(3).Range("C" & lignetempo).FormulaR1C1 = "=TEXT(RC[1],""jjjj"")"
Sheets(3).Range("A" & lignetempo).FormulaR1C1 = "=INT((RC[4]-40546)/7)+1-52*INT((RC[4]-40546)/364)" '<===== J'ai créé une formule (qui vaut ce qu'elle vaut) pour calculer le numéro de la semaine, la fonction Excel NO.SEMAINE ne fonctionnant pas, quelle que soit la méthode : je voulais que la semaine soit compté du lu au di soit semaine 4/2012 du lu 23/01/12 au di 29/01/12

Unload Me

End Sub

Private Sub UserForm_Click()

End Sub