Dates

Résolu
cs_lafrite44 Messages postés 10 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 30 janvier 2006 - 4 janv. 2006 à 15:08
cs_lafrite44 Messages postés 10 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 30 janvier 2006 - 30 janv. 2006 à 18:33
Bonjour et bonne années 2006 à toutes et tous !

J'ai un problème sous VBA (petite précision : je débute tout juste) :
J'ai créer une base de données sous Excel que je souhaite modifier (ajout, suppression et modification de fiche) via mon petit programme VBA.
Dans cette base de données, il y a la date de naissance des personnes. Or, quand je veux créer une nouvelle fiche (ou même modifier) la nouvelle date que j'entre dans la textbox par exemple 01/12/2005 (1er décembre 2005) se transforme en 12/01/2005 sur Excel !!!
Et ce n'est pas un problème de format de date car d'après ce que j'ai compris en faisant plusieurs manip', c'est VB qui ne comprend les dates que sous le format mm/jj/aaaa.
Je ne sait plus quoi faire pour lui faire comprendre les dates au format français.

Pouvez-vous m'aider ?

Merci beaucoup d'avance!!!

11 réponses

Doro81079 Messages postés 380 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 24 février 2015 56
6 janv. 2006 à 21:24
bonsoir,

sinon tu peux faire de cette façon :

range("B2").value = Format (txtdate.text, "mm/dd/yyyy")

je sais c'est le format anglais et aussi illogique que ça paraisse, ça fonctionne !
j'ai même faillie essayer toute les dates du calendrier tellement c'est illogique

donc à toi de voir si tu préfère une fonction (qui fonctionne) ou une simple ligne de code....

Salut
Doro
3
m2rtech Messages postés 239 Date d'inscription mercredi 9 octobre 2002 Statut Membre Dernière intervention 20 février 2012
4 janv. 2006 à 15:15
salut,

si tu inserre ta date par SQL, il faut faire

format(txtmadate,"mm/dd/yyyy")
0
cs_lafrite44 Messages postés 10 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 30 janvier 2006
4 janv. 2006 à 15:25
Que signifie SQL ?
Où insérer la ligne de commande, j'ai pas bien compris, dsl
0
Doro81079 Messages postés 380 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 24 février 2015 56
4 janv. 2006 à 16:33
bonjour,

sql signifie en fait requête sql c'est ce qui te permet de récupérer des données dans une base de données

exemple d'une requête sql qui permet de rechercher des données concernant une personne (txtnom) et de modifier la date de naissance de cette personne :

'ouverture de la table et recherche de la ligne concernant la personne par son nom
table.open"select*from [etat_civil]where[nom]='"&txtnom.text&"'",base,adopendynamic,adlockoptimistic

'modification de la date de naissance de la personne recherchée
base.Execute "update [etat_civil] set [date_naissance]= #" & Format(txtdate1.Text, "mm / dd / yyyy") & "# where [nom]= '" & txtnom.text & "'"

base c'est la variable déclarée pour la base de donnée
table c'est la variable déclarée pour la création du recordset qui va contenir les données recherchées dans une table
etat_civil c'est le nom de la table qui contient toutes les données des personnes
txtnom c'est le nom de la textbox qui va recevoir le nom de la personne pour rechercher les données la concernant
et txtdate c'est le nom de la textbox ou tu va inscrire la date de naissance

ce code fonctionne en vb6 en vbA je ne suis pas sure par contre il ne faut pas oublier de créer la connection

si tu n'as pas tout compris n'hésites pas

Salut
Doro
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kalobit Messages postés 169 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 7 avril 2008 2
4 janv. 2006 à 17:09
Oulà doro, on est dans excel là. oublions les requetes sql.

Ce problème est un problème récurent sur les dates dans vba et j'ai pas de solution miracle. Néanmoins, le problème peut se contourner de plusieurs manières.
1 : utiliser un controle calendrier qui te renverra une variable date. (ya d'autres controles comme le datepicker ...)
2 : décomposer les infos de la textbox et recomposer une date
3 : coller la date dans une cellule et la reprendre (bizarement, ça marche)
4 : utiliser des combobox et composer une date

pour finir, évite de retraiter la variable date, et travaille plutôt sur textbox.text.

En effet, tu as surement remarqué que l'inversion jour/mois ne se fait que pour les 12 premiers jours du mois ensuite, vba reconnais bien les jours.

as tu essayé un cdate(textboxdate.text) pour voir ce que ça ressort
0
cs_lafrite44 Messages postés 10 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 30 janvier 2006
4 janv. 2006 à 17:15
Merci à vous deux.

je vais essayer avec textboxdate.text pour voir, sinon je ferrais avec la manip' 3, ça m'évitera de reprendre mes feuilles trop en profondeur.

Par contre, j'ai toujours travaillé avec textbox.text, qu'entends-tu par la variable date ?

Encore merci !
0
Doro81079 Messages postés 380 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 24 février 2015 56
4 janv. 2006 à 19:08
re,

kalobit=> j'avais spécifié que c'était un code vb6 et que pour vba je n'était pas sure
mais c'était aussi pour lui expliquer ce que voulait dire sql et lui donner un exemple
et au cas où si ça pouvait l'aider , personnellement excel c'est pas mon truc .....

lafrite44=> bonne continuation...

Salut
Doro
0
cs_lafrite44 Messages postés 10 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 30 janvier 2006
5 janv. 2006 à 08:27
bon, bon,

j'ai essayé avec textboxdate.text mais vba ne reconnait pas cette synthaxe.
j'ai aussi essayé la manip' 3, c'est à dire de mettre textbox.text dans une cellule puis de remettre cette même cellule dans une autre mais ça revient au même... comprends pas.

J'aurais voulu donc savoir comment décomposer les infos de textbox pour la recomposer dans une cellule ?

Please ... help !
0
kalobit Messages postés 169 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 7 avril 2008 2
5 janv. 2006 à 13:57
ok, voilà la sub à utiliser
A toi de voir si tu préfère utiliser une fonction

Sub TextBoxToDate()

Dim madate As String, jour As Integer, mois As Integer, annee As Integer
Dim datefinale As Date
madate = tontextbox.Text


If Not madate Like "##/##/####" Then
MsgBox "Le format de date est incorrecte" & vbCrLf & "Veuillez utiliser le format jj/mm/aaaa"
Exit Sub
End If
jour = Left(madate, 2)
annee = Right(madate, 4)
mois = Mid(madate, 4, 2)


datefinal = DateSerial(annee, mois, jour)
MsgBox datefinal
end sub

+++
0
cs_lafrite44 Messages postés 10 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 30 janvier 2006
5 janv. 2006 à 14:17
ouhaaa cool !

je n'ai encore jamais utilisé ça, je vais essayé ce soir mais ça m'a l'air clair, merci bôcoup !
je te tiens au courant ...
0
cs_lafrite44 Messages postés 10 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 30 janvier 2006
30 janv. 2006 à 18:33
Bonsoir !


Désolé pour le retard mais j'avais pas mal de boulot en cemoment, donc un peu crevé le soir et le flemme de m'y remettre...


En tout cas, j'ai essayé la dernière solution, qui a résolu mes problèmes !!!

Merci à tous ceux qui m'ont aidés, c'est vraiment sympa.
Du coup, je suis re-motivé pour me mettre à la tâche...

Salut !
0
Rejoignez-nous