Enregistrer date d'une Textbox vers Cellule

Bonsoir à tous !

Je ne comprend pas ce qui cloche dans ce que je fais....

J'ai deux USF qui exporte des dates sur le fichier excel la formule :

With ActiveWorkbook.Sheets(Choixsheet)

        derlign = IIf([A1] = "", 1, [A65536].End(xlUp).Row + 1)

            .Range("A" & derlign) = Range("A" & derlign - 1).Value + 1
            .Range("B" & derlign) = Nipbox.Value
            .Range("C" & derlign) = Nompatientbox.Value
            .Range("D" & derlign) = NamejeunefilleBox.Value
            .Range("E" & derlign) = Prenompatientbox.Value
            .Range("F" & derlign) = CDate(Datenaissancebox.Value)
            .Range("G" & derlign) = BradenBox.Value
            .Range("H" & derlign) = CovidBox.Value
            .Range("I" & derlign) = MotifHospiBox.Value
            .Range("J" & derlign) = ProvenanceBox.Value
            .Range("K" & derlign) = CDate(DateEntreeBox.Value)
            .Range("L" & derlign) = CDate(HeureEntreeBox.Value)

            If ChoixaileBox = "1A1" Or ChoixaileBox = "1A2" Then ' Si 1A1 ou 1A2 = n° Chambre + n° Box

            .Range("M" & derlign) = ChoixChambreBox.Value 'n° de Chambre
            .Range("N" & derlign) = ChoixBox.Value 'n° de Box

            End If

        End With

J'ai bien mis la TextBox avec Cdate mais pourtant ca bug quand ça enregistre dans le fichier...

Le format de la textbox est jj/mm/aaaa et quand ca exporte ca exporte en mm/jj/aaaa

Si vous pouvez m'aiguiller, merci beaucoup.

Voici les fichiers :

Bonsoir,

Hum... Te vexe pas hein !

Le nom des contrôles de UserForm répond à des normes assez généralement admises dans la communauté des développeurs.

Les textBox s'appellent tbNoms, tbPrenom, tbDate... les combo : cboVille, cboAile... et les boutons cmdValid, cmdAnnul...

Aussi j'ai renommé tous les contrôles comme d'habitude. ça m'évite de perdre du temps à chercher ce qui a pu te passer par la tête avec des noms exotiques...

Aussi tu feras bien d'observer cette saine habitude qui n'est pas seulement un caprice de développeur mais une habitude bien pratique pour plusieurs raisons.

En attendant tu es obligé de vérifier tous les noms de tes contrôles et de leur donner une forme canonique... (conforme à ce que je viens d'expliquer)

A+

Bonsoir,

J'ai corrigé sur l'USF, mais ca ne règle pas le problème bien évidemment :

.Range("F" & derlign) = CDate(tboDatenaissance.Value)

Normalement sur cette ligne, ça copie dans le fichier excel, mais le format dans la cellule n'est pas le même que la textbox (tboDatenaissance).

P.S : je ne suis pas vexé je suis là pour apprendre ! je préfère prendre de bonne habitudes plutôt que des mauvaises !

Bonjour,

Si tu le fais, fais le correctement tb... est suffisant pas tbo, pas de de majuscule

c'est le même principe pour label = lblTruc, lblMachin

Pour des raisons de lisibilité, iI est préférable d'éviter les noms de variables et de contrôle de plus de 10 caractères :

tbDatNais 'est préférable à tboDatedeNaissance,,
tbNomPat 'à TboNompatient
tbNomJF 'à Tbojeunefille
tbPrenPat 'àTboPrenompatient ...

Il faut reconnaitre que ces pratiques sont assez fluctuantes d'un programmeur à l'autre.

Cependant tu reconnaitras rapidement celles qui recueillent le maximum d'adhésion...

Concernant l'erreur rencontrée, tu peux essayer :

.Range("F" & derlign) = CLng(CDate(tboDateNais))
'et ensuite
.Range("F" & derlign).NumberFormat = "dd/mm/yyyy"

A+

Bonjour,

Merci ça marche nickel bien que je ne comprenne pas pourquoi il faut reformater la cellule...

J'ai corrigé dans les USF pour correspondre à ce que tu m'as dit !

C'est un petit difficile à expliquer, mais...

Un TextBox comme son nom l'indique (ainsi que la plupart des contrôles) renvoient du texte.
Pour des raisons un peu nébuleuses la conversion CDate est parfois aléatoire et mal interprétée par Excel. (en particulier quand le quantième est inférieur à 13)

Dans ce cas on transmet la date non pas sous la forme de date mais du N° de série de la date (C'est ce que fait CLng)

Quand Excel reçoit ce N° de série, il a tendance à l'afficher "tel quel" C'est pourquoi il faut lui préciser qu'il s'agit bien d'une date.

Personnellement je passe presque systématiquement par une variable ou une conversion en Long pour traiter les dates...

A+

Rechercher des sujets similaires à "enregistrer date textbox"