conversion format date ds textbox

O

Odile

Guest
Bonjour à toutes et à tous.

Bon je m'explique. J'ai un textbox dans lequel je rentre une date sous le format dd/mm/yyyy.
Cette date s'inscrit ensuite dans la dernière ligne non vide de la colonne A de ma feuille 1.

Le hic c'est que cette date devient sur ma feuille m/d/yyyy. Pourquoi ? mystère.
Je préçise que mes paramètres régionnaux st bien français.

Comme un exemple vaut mieux qu'un long discours, je joins mon fichier avec la macro (userform1)

Merci par avance à tous ceux et toutes celles qui voudront bien se pencher sur ce problème

Philippe
 
O

Odile

Guest
Bon mon fichier n'était pas passé

Odile écrit:
Bonjour à toutes et à tous.

Bon je m'explique. J'ai un textbox dans lequel je rentre une date sous le format dd/mm/yyyy.
Cette date s'inscrit ensuite dans la dernière ligne non vide de la colonne A de ma feuille 1.

Le hic c'est que cette date devient sur ma feuille m/d/yyyy. Pourquoi ? mystère.
Je préçise que mes paramètres régionnaux st bien français.

Comme un exemple vaut mieux qu'un long discours, je joins mon fichier avec la macro (userform1)

Merci par avance à tous ceux et toutes celles qui voudront bien se pencher sur ce problème

Philippe
[file name=fichiertest_20060129175103.zip size=50442]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/fichiertest_20060129175103.zip[/file]
 

Pièces jointes

  • fichiertest_20060129175103.zip
    49.3 KB · Affichages: 34

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir Seb, Philippe ou Odile, le Forum

Il y a pas mal de sbinz dans ce fichier y compris une Auto_Open qui devrait être depuis longtemps remplacée par une évènementielle dans le Private Module de ThisWorkBook 'Private Sub Workbook_Open()'

Pour le reste je suis d'accord avec Seb, on peut aussi un peu optimiser le code ainsi :

Private Sub CommandButton1_Click()
Dim LastLine As Long

If Not IsDate(Me.TextBox1) Then
    MsgBox 'Vous devez indiquer une date valide'
   
Exit Sub
End If

   
If TextBox1 = Empty Then
        UserForm4.Show
   
ElseIf TextBox2 = Empty Then
        UserForm5.Show
   
ElseIf TextBox3 = Empty Then
        UserForm6.Show
   
Else
   
       
With Sheets('Feuil1')
            .Unprotect
            LastLine = .Range('A65536').End(xlUp).Row + 1
           
           
With .Range('A' & LastLine)
            .Value = CDate(TextBox1.Value)
            .NumberFormat = 'dd/mm/yyyy'
           
End With
           
            .Range('B' & LastLine).Value = Month(TextBox1.Value)
            .Range('C' & LastLine).Value = Day(TextBox1.Value)
            .Range('D' & LastLine).Value = TextBox2.Value
            .Range('E' & LastLine).Value = TextBox3.Value
       
End With
       
        TextBox1 = ''
        TextBox2 = ''
        TextBox3 = ''
       
   
End If
 
 
End Sub


Bonne Soirée
[ol]@+Thierry[/ol]

Message édité par: _Thierry, à: 29/01/2006 18:25
 
O

Odile

Guest
Salut Seb

je te remercie pour ta proposition mais comme tu peux le voir dans le fichier, j'ai insérer ta proposition sans succès. J'ai tjs sur ma feuille un format inversé.

Le pb serait il insoluble ?

Si d'autres personnes ont une idée, elles seront les bienvenues [file name=fichiertest_20060129182635.zip size=50442]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/fichiertest_20060129182635.zip[/file]
 

Pièces jointes

  • fichiertest_20060129182635.zip
    49.3 KB · Affichages: 22
O

Odile

Guest
Bonjour Thierry

Merci pour ton code qui marche très bien. Je suis désolé mais j'ai qq problèmes de connexion et un post n'est pas passé ce qui explique un peu ce dialogue de sourd

Par contre par souçi de progression, j'aimerais savoir pourquoi dans mon code, j'avais cette inversion ?

Si tu peux me renseigner ce serait génial

En tout cas merci à toi et à Seb par la même occasion.

Odile
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

Je ne sais pas si c'est l'explication complète mais une textbox est au format string; si tu ne précise pas le CDate dans la récupération de ta date VBA lorsqu'il voit une date, quelque soient tes options régionales Windows, considère ta date au format anglais mm/dd/yyyy sauf dans le cas d'une date où le jour est supérieur à 12 où il comprend qu'il faut remettre à l'autre format

exemple

01/12/2005 saisi sera compris en 12/01/2005

par contre

13/12/2005 saisi sera bien compris 13/12/2005

Donc il faut toujours utilisé le CDate quand tu récupères une date d'un textbox

Bonne soirée
 
O

odile

Guest
merci pour toutes ces explications.
Je vais me coucher moins bête ce soir.
Le chemin qui mêne à la connaissance est long mais qd on a la chance de trouver sur son chemin des personnes qui aiment partager leur savoir, on avance petit à petit.

Merci à toi et au forum en général

Odile et Philippe

PS: Ben oui on travaille sur ce fichier à deux, alors dès fois on se mélange les pinceaux ds les posts
 

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 265
Membres
103 501
dernier inscrit
talebafia