J'ai des macros qui utilisent des dates insérer dans des cellules.
Mon problème est que l'interpretation de la date me semble être
différent entre ce qui est saisie dans la cellule et ce que récupère
la macro.
Par exemple : je saisie 04/12/2009 dans une cellule, qui est bien
considéré comme une date (valeur numérique 40151). Par contre, quand
je cherche à manipuler cette valeur, elle se transforme en 12 avril
2009 et non plus 4 décembre 2009.
Mes options régionales sont bien à JJ/MM/AAAA
Le format de mes cellules est bien JJ/MM/AAAA
et pourtant dans VBA, les jours et les mois sont inversés.
Qu'aurais-je oublié ?
Merci pour votre aide
Cordialement,
F.
VBA est r�git par les r�gles anglo-saxonnes, comme le point s�parateur
d�cimal, et non la virgule. Il faut formater la sortie avec la fonction
format.
Cdt, Blaise
---- ---- ----
"FdeCourt" <fdec...@gmail.com> a �crit dans le message de news:
8296c08c-0543-4a89...@o10g2000yqa.googlegroups.com...
Bonjour,
J'ai des macros qui utilisent des dates ins�rer dans des cellules.
Mon probl�me est que l'interpretation de la date me semble �tre
diff�rent entre ce qui est saisie dans la cellule et ce que r�cup�re
la macro.
Par exemple : je saisie 04/12/2009 dans une cellule, qui est bien
consid�r� comme une date (valeur num�rique 40151). Par contre, quand
je cherche � manipuler cette valeur, elle se transforme en 12 avril
2009 et non plus 4 d�cembre 2009.
Mes options r�gionales sont bien � JJ/MM/AAAA
Le format de mes cellules est bien JJ/MM/AAAA
et pourtant dans VBA, les jours et les mois sont invers�s.
Qu'aurais-je oubli� ?
Ok, ta date est dans une cellule dont excel reconna�t le format comme �tant une date.
Lorsque tu r�cup�res cette valeur dans VBA,
pends-tu le soin de d�finir le "type" de ta variable
Dim D as date
D = Range("A1")
Ou tu pourrais utiliser ceci :
Tu r�cup�res la date de la cellule A1 par sa valeur num�rique
en utilisant une variable de typ Long et la propri�t� .Value2
de l'objet Range.
Dim D As Long
D = Range("A1").Value2
D = 40144 si en A1 il y a la date d'aujourd'hui
Et pour retourner la valeur de la variable D sous forme de date
Range("A2").value = cdate(D)
Sinon, donne un exemple de la probl�matique que tu rencontres.
"FdeCourt" <fdec...@gmail.com> a �crit dans le message de groupe de discussion :
8296c08c-0543-4a89...@o10g2000yqa.googlegroups.com...
Bonjour,
J'ai des macros qui utilisent des dates ins�rer dans des cellules.
Mon probl�me est que l'interpretation de la date me semble �tre
diff�rent entre ce qui est saisie dans la cellule et ce que r�cup�re
la macro.
Par exemple : je saisie 04/12/2009 dans une cellule, qui est bien
consid�r� comme une date (valeur num�rique 40151). Par contre, quand
je cherche � manipuler cette valeur, elle se transforme en 12 avril
2009 et non plus 4 d�cembre 2009.
Mes options r�gionales sont bien � JJ/MM/AAAA
Le format de mes cellules est bien JJ/MM/AAAA
et pourtant dans VBA, les jours et les mois sont invers�s.
Qu'aurais-je oubli� ?
Chez moi, dans un cas ca passe à 04/12/2009, puis 12/04/2009, puis
04/12/2009.
Bien sur il ne faut rien changer, si ce n'est cliquer sur les boutons.
Le code VBA que j'utilise est ultra simple :
3 procédures :
Private Sub CommandButton3_Click()
Cells(2, 2).Value = detail.madate.Value
Unload Me
End Sub
Private Sub UserForm_Activate()
detail.madate.Value = Cells(2, 2).Value
End Sub
Sub test()
detail.Show
End Sub
http://www.world-is-yours.com/tools/share/details.php?i=f2f4e658-25d0-44b3-980b-03eadbd22208
Merci pour votre aide
Cordialement,
F.
On 27 nov, 17:49, "Blaise Cacramp" <Devi...@gmail.com> wrote:
> Selon : Bonjour ou bonsoir
>
> VBA est régit par les règles anglo-saxonnes, comme le point séparateur
> décimal, et non la virgule. Il faut formater la sortie avec la fonction
> format.
>
> Cdt, Blaise
> ---- ---- ----
>
> "FdeCourt" <fdeco...@gmail.com> a écrit dans le message de news:
> 8296c08c-0543-4a89-b0e2-d53504f50...@o10g2000yqa.googlegroups.com...
> Bonjour,
>
> J'ai des macros qui utilisent des dates insérer dans des cellules.
> Mon problème est que l'interpretation de la date me semble être
> différent entre ce qui est saisie dans la cellule et ce que récupère
> la macro.
>
> Par exemple : je saisie 04/12/2009 dans une cellule, qui est bien
> considéré comme une date (valeur numérique 40151). Par contre, quand
> je cherche à manipuler cette valeur, elle se transforme en 12 avril
> 2009 et non plus 4 décembre 2009.
>
> Mes options régionales sont bien à JJ/MM/AAAA
> Le format de mes cellules est bien JJ/MM/AAAA
>
> et pourtant dans VBA, les jours et les mois sont inversés.
>
> Qu'aurais-je oublié ?
On 27 nov, 18:02, "michdenis" <michde...@hotmail.com> wrote:
> Bonjour,
>
> Ok, ta date est dans une cellule dont excel reconnaît le format comme étant une date.
>
> Lorsque tu récupères cette valeur dans VBA,
> pends-tu le soin de définir le "type" de ta variable
>
> Dim D as date
> D = Range("A1")
>
> Ou tu pourrais utiliser ceci :
> Tu récupères la date de la cellule A1 par sa valeur numérique
> en utilisant une variable de typ Long et la propriété .Value2
> de l'objet Range.
>
> Dim D As Long
> D = Range("A1").Value2
> D = 40144 si en A1 il y a la date d'aujourd'hui
>
> Et pour retourner la valeur de la variable D sous forme de date
> Range("A2").value = cdate(D)
>
> Sinon, donne un exemple de la problématique que tu rencontres.
>
> "FdeCourt" <fdeco...@gmail.com> a écrit dans le message de groupe de discussion :
> 8296c08c-0543-4a89-b0e2-d53504f50...@o10g2000yqa.googlegroups.com...
> Bonjour,
>
> J'ai des macros qui utilisent des dates insérer dans des cellules.
> Mon problème est que l'interpretation de la date me semble être
> différent entre ce qui est saisie dans la cellule et ce que récupère
> la macro.
>
> Par exemple : je saisie 04/12/2009 dans une cellule, qui est bien
> considéré comme une date (valeur numérique 40151). Par contre, quand
> je cherche à manipuler cette valeur, elle se transforme en 12 avril
> 2009 et non plus 4 décembre 2009.
>
> Mes options régionales sont bien à JJ/MM/AAAA
> Le format de mes cellules est bien JJ/MM/AAAA
>
> et pourtant dans VBA, les jours et les mois sont inversés.
>
> Qu'aurais-je oublié ?
http://www.world-is-yours.com/tools/share/dld.php?i=547a179e-9229-407e-8ec3-627e5ee69051
J'ai juste modifié le code ainsi :
Private Sub CommandButton3_Click()
Cells(Cells(65535, 2).End(xlUp).Row + 1, 2).Value =
detail.madate.Value
Unload Me
End Sub
Private Sub UserForm_Activate()
detail.madate.Value = Cells(Cells(65535, 2).End(xlUp).Row, 2).Value
End Sub
Private Sub CommandButton3_Click()
Cells(2, 2).Value = CDate(detail.madate.Value)
Unload Me
End Sub
Cdt, Blaise
---- ---- ----
"FdeCourt" <fdec...@gmail.com> a �crit dans le message de news:
943a430a-8b63-463f...@f16g2000yqm.googlegroups.com...
Je ne pense pas que ce soit le probl�me.
Dans le fichier joint.
Cliquer sur le bouton Bouton 1
Puis dans le userform qui se lance, cliquer sur OK sans rien toucher.
Le faire au moins deux fois.
Chez moi, dans un cas ca passe � 04/12/2009, puis 12/04/2009, puis
04/12/2009.
Bien sur il ne faut rien changer, si ce n'est cliquer sur les boutons.
Le code VBA que j'utilise est ultra simple :
3 proc�dures :
Private Sub CommandButton3_Click()
Cells(2, 2).Value = detail.madate.Value
Unload Me
End Sub
Private Sub UserForm_Activate()
detail.madate.Value = Cells(2, 2).Value
End Sub
Sub test()
detail.Show
End Sub
http://www.world-is-yours.com/tools/share/details.php?i=f2f4e658-25d0-44b3-980b-03eadbd22208
Merci pour votre aide
Cordialement,
F.
On 27 nov, 17:49, "Blaise Cacramp" <Devi...@gmail.com> wrote:
> Selon : Bonjour ou bonsoir
>
> VBA est r�git par les r�gles anglo-saxonnes, comme le point s�parateur
> d�cimal, et non la virgule. Il faut formater la sortie avec la fonction
> format.
>
> Cdt, Blaise
> ---- ---- ----
>
> "FdeCourt" <fdeco...@gmail.com> a �crit dans le message de news:
> 8296c08c-0543-4a89-b0e2-d53504f50...@o10g2000yqa.googlegroups.com...
> Bonjour,
>
> J'ai des macros qui utilisent des dates ins�rer dans des cellules.
> Mon probl�me est que l'interpretation de la date me semble �tre
> diff�rent entre ce qui est saisie dans la cellule et ce que r�cup�re
> la macro.
>
> Par exemple : je saisie 04/12/2009 dans une cellule, qui est bien
> consid�r� comme une date (valeur num�rique 40151). Par contre, quand
> je cherche � manipuler cette valeur, elle se transforme en 12 avril
> 2009 et non plus 4 d�cembre 2009.
>
> Mes options r�gionales sont bien � JJ/MM/AAAA
> Le format de mes cellules est bien JJ/MM/AAAA
>
> et pourtant dans VBA, les jours et les mois sont invers�s.
>
> Qu'aurais-je oubli� ?
Je viens de tester en changeant dans les options régionales le format
en MM/jj/aaaa
et la dans Excel, ce format est correctement conservé lorsque je
clique plusieurs fois sur le bouton de mon classeur test (mais bien
sur pas au format que je souhaite)
Par contre, dès que je repasse en jj/MM/aaaa cela ne fonctionne plus.
Il y a quand même un truc bizarre
En l'occurence, plutot bonsoir.
Mon problème est que les cellules seront renseignées par des
utilisateurs.
Déjà qu'ils ne comprennent rient, si en plus je leur rajoute la
gymnastique mentale de devoir intervertir mois et jours..... ils ne
vons jamais le renseigner correctement.
Juste pour savoir, est-ce que le même comportement est reproductible
sur vos PC ?
Merci pour le coup de main
Cordialement,
F.
On 27 nov, 18:23, "Blaise Cacramp" <Devi...@gmail.com> wrote:
> Selon : Bonjour ou bonsoir
>
> Private Sub CommandButton3_Click()
> Cells(2, 2).Value = CDate(detail.madate.Value)
> Unload Me
> End Sub
>
> Cdt, Blaise
> ---- ---- ----
>
> "FdeCourt" <fdeco...@gmail.com> a écrit dans le message de news:
> 943a430a-8b63-463f-a0f5-25245059b...@f16g2000yqm.googlegroups.com...
> Je ne pense pas que ce soit le problème.
> Dans le fichier joint.
> Cliquer sur le bouton Bouton 1
> Puis dans le userform qui se lance, cliquer sur OK sans rien toucher.
> Le faire au moins deux fois.
>
> Chez moi, dans un cas ca passe à 04/12/2009, puis 12/04/2009, puis
> 04/12/2009.
>
> Bien sur il ne faut rien changer, si ce n'est cliquer sur les boutons.
>
> Le code VBA que j'utilise est ultra simple :
> 3 procédures :
>
> Private Sub CommandButton3_Click()
> Cells(2, 2).Value = detail.madate.Value
> Unload Me
> End Sub
>
> Private Sub UserForm_Activate()
> detail.madate.Value = Cells(2, 2).Value
> End Sub
>
> Sub test()
> detail.Show
> End Sub
>
> http://www.world-is-yours.com/tools/share/details.php?i=f2f4e658-25d0...
>
> Merci pour votre aide
>
> Cordialement,
>
> F.
>
> On 27 nov, 17:49, "Blaise Cacramp" <Devi...@gmail.com> wrote:
>
>
>
> > Selon : Bonjour ou bonsoir
>
> > VBA est régit par les règles anglo-saxonnes, comme le point séparateur
> > décimal, et non la virgule. Il faut formater la sortie avec la fonction
> > format.
>
> > Cdt, Blaise
> > ---- ---- ----
>
> > "FdeCourt" <fdeco...@gmail.com> a écrit dans le message de news:
> > 8296c08c-0543-4a89-b0e2-d53504f50...@o10g2000yqa.googlegroups.com...
> > Bonjour,
>
> > J'ai des macros qui utilisent des dates insérer dans des cellules.
> > Mon problème est que l'interpretation de la date me semble être
> > différent entre ce qui est saisie dans la cellule et ce que récupère
> > la macro.
>
> > Par exemple : je saisie 04/12/2009 dans une cellule, qui est bien
> > considéré comme une date (valeur numérique 40151). Par contre, quand
> > je cherche à manipuler cette valeur, elle se transforme en 12 avril
> > 2009 et non plus 4 décembre 2009.
>
> > Mes options régionales sont bien à JJ/MM/AAAA
> > Le format de mes cellules est bien JJ/MM/AAAA
>
> > et pourtant dans VBA, les jours et les mois sont inversés.
>
> > Qu'aurais-je oublié ?
>
> > Merci pour votre aide
>
> > Cordialement,
>
> > F.- Masquer le texte des messages précédents -
>
> - Afficher le texte des messages précédents -
Le comportement �tait de fait identique (et m�me marrant), sinon je n'aurais
pas trouv� la solution : Cdate()
Cdt, Blaise
---- ---- ----
"FdeCourt" <fdec...@gmail.com> a �crit dans le message de news:
e023604b-ebc7-4eba...@r24g2000yqd.googlegroups.com...
Blaise,
En l'occurence, plutot bonsoir.
Mon probl�me est que les cellules seront renseign�es par des
utilisateurs.
D�j� qu'ils ne comprennent rient, si en plus je leur rajoute la
gymnastique mentale de devoir intervertir mois et jours..... ils ne
vons jamais le renseigner correctement.
Juste pour savoir, est-ce que le m�me comportement est reproductible
sur vos PC ?
Merci pour le coup de main
Cordialement,
F.
On 27 nov, 18:23, "Blaise Cacramp" <Devi...@gmail.com> wrote:
> Selon : Bonjour ou bonsoir
>
> Private Sub CommandButton3_Click()
> Cells(2, 2).Value = CDate(detail.madate.Value)
> Unload Me
> End Sub
>
> Cdt, Blaise
> ---- ---- ----
>
> "FdeCourt" <fdeco...@gmail.com> a �crit dans le message de news:
> 943a430a-8b63-463f-a0f5-25245059b...@f16g2000yqm.googlegroups.com...
> Je ne pense pas que ce soit le probl�me.
> Dans le fichier joint.
> Cliquer sur le bouton Bouton 1
> Puis dans le userform qui se lance, cliquer sur OK sans rien toucher.
> Le faire au moins deux fois.
>
> Chez moi, dans un cas ca passe � 04/12/2009, puis 12/04/2009, puis
> 04/12/2009.
>
> Bien sur il ne faut rien changer, si ce n'est cliquer sur les boutons.
>
> Le code VBA que j'utilise est ultra simple :
> 3 proc�dures :
>
> Private Sub CommandButton3_Click()
> Cells(2, 2).Value = detail.madate.Value
> Unload Me
> End Sub
>
> Private Sub UserForm_Activate()
> detail.madate.Value = Cells(2, 2).Value
> End Sub
>
> Sub test()
> detail.Show
> End Sub
>
> http://www.world-is-yours.com/tools/share/details.php?i=f2f4e658-25d0...
>
> Merci pour votre aide
>
> Cordialement,
>
> F.
>
> On 27 nov, 17:49, "Blaise Cacramp" <Devi...@gmail.com> wrote:
>
>
>
> > Selon : Bonjour ou bonsoir
>
> > VBA est r�git par les r�gles anglo-saxonnes, comme le point s�parateur
> > d�cimal, et non la virgule. Il faut formater la sortie avec la fonction
> > format.
>
> > Cdt, Blaise
> > ---- ---- ----
>
> > "FdeCourt" <fdeco...@gmail.com> a �crit dans le message de news:
> > 8296c08c-0543-4a89-b0e2-d53504f50...@o10g2000yqa.googlegroups.com...
> > Bonjour,
>
> > J'ai des macros qui utilisent des dates ins�rer dans des cellules.
> > Mon probl�me est que l'interpretation de la date me semble �tre
> > diff�rent entre ce qui est saisie dans la cellule et ce que r�cup�re
> > la macro.
>
> > Par exemple : je saisie 04/12/2009 dans une cellule, qui est bien
> > consid�r� comme une date (valeur num�rique 40151). Par contre, quand
> > je cherche � manipuler cette valeur, elle se transforme en 12 avril
> > 2009 et non plus 4 d�cembre 2009.
>
> > Mes options r�gionales sont bien � JJ/MM/AAAA
> > Le format de mes cellules est bien JJ/MM/AAAA
>
> > et pourtant dans VBA, les jours et les mois sont invers�s.
>
> > Qu'aurais-je oubli� ?
>
> > Merci pour votre aide
>
> > Cordialement,
>
> > F.- Masquer le texte des messages pr�c�dents -
>
> - Afficher le texte des messages pr�c�dents -
FdeCourt a �crit :
> Juste pour savoir, est-ce que le m�me comportement est reproductible
> sur vos PC ?
>
je n'ai pas ce probl�me, sur mon pc,
dans mes options r�gionales le format est celui iso int. : aaaa-mm-jj
isabelle
Private Sub CommandButton1_Click()
Cells(2, 2).Value = Format(CDate(UserForm1.madate1.Value), "dd/mm/
yyyy")
Unload Me
End Sub
Private Sub UserForm_Activate()
UserForm1.madate1.Value = Format(CDate(Cells(2, 2).Value), "dd/mm/
yyyy")
End Sub
J'ai essayer plusieurs combinaison, avec le Cdate, sans, avec le
format, sans....
Rien à faire, soit cela s'inverse toujours entre chaque clique, soit
cela affiche toujours la date au format MM/JJ/AAAA.
Dans ce cas, comment faire pour que la date soit toujours au format JJ/
MM/AAAA dans ma cellule et dans mon TextBox ?
Merci pour ton aide.
Cordialement,
F.
Si j'�cris 09/02/09 comment fais-tu pour savoir de quelle date il s'agit ?
est-ce le 9 f�vrier 2009, 2 septembre 2009....
Comme excel n'est pas tr�s bon pour deviner, quand tu utilises une
fonction de conversion comme "Cdate()", excel interpr�te la date que
tu lui pr�sente � partir du format existant dans le panneau de configuration
de Windows.
En cons�quence, la fonction de conversion Cdate() a ses limites ! si tu envoies
ton fichier vers un destinataire qui utilise une configuration diff�rente des dates
dans son panneau de configuration, il est plus que probable que ta proc�dure va
en souffrir. Tu peux utiliser une fonction qui va faire mouche � tout coup !
x = dateserial(Year(),Month(),Day())
De plus, si la saisie de la date dans le textbox se fait manuellement, comment s'assurer
que tous les usagers vont entrer la date au format que tu demandes ? L� aussi,
c'est probl�matique !
"FdeCourt" <fdec...@gmail.com> a �crit dans le message de groupe de discussion :
ce2ccadb-d588-49f7...@o10g2000yqa.googlegroups.com...
C'est vraiment �trange.
Meme avec ce code cela ne fonctionne pas :
Private Sub CommandButton1_Click()
Cells(2, 2).Value = Format(CDate(UserForm1.madate1.Value), "dd/mm/
yyyy")
Unload Me
End Sub
Private Sub UserForm_Activate()
UserForm1.madate1.Value = Format(CDate(Cells(2, 2).Value), "dd/mm/
yyyy")
End Sub
J'ai essayer plusieurs combinaison, avec le Cdate, sans, avec le
format, sans....
Rien � faire, soit cela s'inverse toujours entre chaque clique, soit
Et donc, un peu de rigueur et aussi de tests garde-fou peuvent r�soudre le
probl�me.
Enfin Tous
L'interpr�tation anglo-saxonne d'une date par rapport � une cellule qui
change de valeur � chaque clic de bouton, c'est tout � fait normal qu'un
coup sur 2 la date change!
Fredo P.
"isabelle" <i@v> a �crit dans le message de news:
%23L7c274...@TK2MSFTNGP05.phx.gbl...
Private Sub UserForm_Activate()
detail.madate.Value = CDate(Cells(2, 2))
End Sub
--
Fredo P.
"FdeCourt" <fdec...@gmail.com> a �crit dans le message de news:
c3f770ec-898f-48c7...@g26g2000yqe.googlegroups.com...
Dans mon code r��l, j'ai bien d�clar� ma variable comme �tant une
date.
On 27 nov, 18:02, "michdenis" <michde...@hotmail.com> wrote:
> Bonjour,
>
> Ok, ta date est dans une cellule dont excel reconna�t le format comme
> �tant une date.
>
> Lorsque tu r�cup�res cette valeur dans VBA,
> pends-tu le soin de d�finir le "type" de ta variable
>
> Dim D as date
> D = Range("A1")
>
> Ou tu pourrais utiliser ceci :
> Tu r�cup�res la date de la cellule A1 par sa valeur num�rique
> en utilisant une variable de typ Long et la propri�t� .Value2
> de l'objet Range.
>
> Dim D As Long
> D = Range("A1").Value2
> D = 40144 si en A1 il y a la date d'aujourd'hui
>
> Et pour retourner la valeur de la variable D sous forme de date
> Range("A2").value = cdate(D)
>
> Sinon, donne un exemple de la probl�matique que tu rencontres.
>
> "FdeCourt" <fdeco...@gmail.com> a �crit dans le message de groupe de
> discussion :
> 8296c08c-0543-4a89-b0e2-d53504f50...@o10g2000yqa.googlegroups.com...
> Bonjour,
>
> J'ai des macros qui utilisent des dates ins�rer dans des cellules.
> Mon probl�me est que l'interpretation de la date me semble �tre
> diff�rent entre ce qui est saisie dans la cellule et ce que r�cup�re
> la macro.
>
> Par exemple : je saisie 04/12/2009 dans une cellule, qui est bien
> consid�r� comme une date (valeur num�rique 40151). Par contre, quand
> je cherche � manipuler cette valeur, elle se transforme en 12 avril
> 2009 et non plus 4 d�cembre 2009.
>
> Mes options r�gionales sont bien � JJ/MM/AAAA
> Le format de mes cellules est bien JJ/MM/AAAA
>
> et pourtant dans VBA, les jours et les mois sont invers�s.
>
> Qu'aurais-je oubli� ?
Cependant ce que je trouve bizarre, mais qui est peut être tout à fait
normal, c'est que lorsque je saisie dans une cellule 01/01/2009, Excel
saura qu'il s'agit du premier janvier 2009. Ce qui m'arrange puisque
mon ordinateur est configuré pour des dates dans ce format.
Par contre, pourquoi est-ce que VBA ne réagit pas de la même manière
en prenant en compte la configuration de l'ordinateur (qui est à mon
avis la meilleure solution pour s'assurer que l'utilisateur utilise le
bon format, puisque c'est celui utilisé par son ordinateur)
Je bricole et m'amuse avec Excel, n'ayant aucune compétence en
programmation quelconque, donc la rigueur, dans mes programmes, elle
est pas vraiment au top (je dirais même qu'il n'y a que moi qui me
comprend !)... mais je m'améliore !
Pour en revenir à mon problème, la solution de Fredo P. fonctionne
effectivement ainsi que celle de Michdenis (que j'utiliserai surement
pour m'assurer dans mes futurs bricolages les dates seront
correctement interprétée sans que j'ai à vous importuner)
Encore merci à tous
Cordialement,
F.
> Cependant ce que je trouve bizarre, mais qui est peut �tre tout � fait
> normal, c'est que lorsque je saisie dans une cellule 01/01/2009, Excel
> saura qu'il s'agit du premier janvier 2009. Ce qui m'arrange puisque
> mon ordinateur est configur� pour des dates dans ce format.
> Par contre, pourquoi est-ce que VBA ne r�agit pas de la m�me mani�re
Deux raisons � cela :
1) VBA est en anglais. Du coup toutes les formules qu'on entre dans VBA
sont mises � la sauce anglophone: noms de fonctions en anglais,
s�parateur d'arguments , et non le ; ... Et pas d�faut, interpr�tation
des dates au format amerloque.
2) Mais surtout, tu entres tes donn�es dans un TEXTbox si j'ai bien
suivi (j'ai lu vite). Dans un TEXTbix par d�finition, c'est du texte,
pas un nombre. C'est comme si tu �crivais '1/1/2009 dans une cellule de
la feuille. Dans ce cas l� tu forces excel � consid�rer que c'est du
texte et � NE PAS interpr�ter le contenu comme une date. Heureusement
que cette possiblit� existe d'ailleurs car c'est assez fr�quent de
devoir indiquer des r�f�rences par exemple qui ressemblent � des dates.
Pour �viter toute erreur dans la saisie de dates dans un formulaire, tu
peux soit utiliser un calendrier (tu trouveras plein d'exemples sur
excelabo, avec le control calendar ou avec des solutions compl�tement
ind�pendantes de celui-ci), soit faire trois textbox, 1 pour le jour, un
pour le mois, un pour l'ann�e. Tu peux alors faire pour chaque textbox
une v�rification de la validit� de ce qui est entr�.
Si tu veux vraiment que les dates soient saisies comme 2/3/2010 et que
tu es SUR qu'il n'y a aucune ambiguit� pour personne sur l'ordre jour
mois, tu peux utiliser la fonction split en VBA pour r�cup�rer jour mois
ann�e et remettre tout �a dans l'ordre :
Donn�es = Split(TextBox1.Value, "/")
MaDate = DateSerial(Donn�es(2), Donn�es(1), Donn�es(0))
Range("Feuil1!A1") = MaDate
rien ne t'emp�ches d'ailleurs de v�rifier que donn�es(1) (le mois) est
compris entre 1 et 12, et donn�es(0) entre 1 et 31.
Misange
Excelabo.net
> en prenant en compte la configuration de l'ordinateur (qui est � mon
> avis la meilleure solution pour s'assurer que l'utilisateur utilise le
> bon format, puisque c'est celui utilis� par son ordinateur)
>
> Je bricole et m'amuse avec Excel, n'ayant aucune comp�tence en
> programmation quelconque, donc la rigueur, dans mes programmes, elle
> est pas vraiment au top (je dirais m�me qu'il n'y a que moi qui me
> comprend !)... mais je m'am�liore !
>
> Pour en revenir � mon probl�me, la solution de Fredo P. fonctionne
> effectivement ainsi que celle de Michdenis (que j'utiliserai surement
> pour m'assurer dans mes futurs bricolages les dates seront
> correctement interpr�t�e sans que j'ai � vous importuner)
>
> Encore merci � tous
>
> Cordialement,
>
> F.
>
Pour mettre la valeur texte de la cellule date dans ton formulaire:
DateFormulaire = CStr(DateCellule)
Pour mettre la valeur date de ton formulaire dans la cellule date:
DateCellule = CDate(DateFormulaire)
De cette fa�on �a va fonctionner peut importe les param�tre r�gionaux...
"FdeCourt" <fdec...@gmail.com> wrote in message
news:8296c08c-0543-4a89...@o10g2000yqa.googlegroups.com...
> Bonjour,
>
> J'ai des macros qui utilisent des dates ins�rer dans des cellules.
> Mon probl�me est que l'interpretation de la date me semble �tre
> diff�rent entre ce qui est saisie dans la cellule et ce que r�cup�re
> la macro.
>
> Par exemple : je saisie 04/12/2009 dans une cellule, qui est bien
> consid�r� comme une date (valeur num�rique 40151). Par contre, quand
> je cherche � manipuler cette valeur, elle se transforme en 12 avril
> 2009 et non plus 4 d�cembre 2009.
>
> Mes options r�gionales sont bien � JJ/MM/AAAA
> Le format de mes cellules est bien JJ/MM/AAAA
>
> et pourtant dans VBA, les jours et les mois sont invers�s.
>
> Qu'aurais-je oubli� ?