Inversion jour et mois

Bonjour,

Voilà j'ai un petit souci ...

J'ai affecté un calendrier à une cellule c'est à dire que lorsque je clique sur la cellule le calendrier apparait... jusque là pas de souci.

Par contre lorsque je sélectionne une date sur ce calendirer elle se place bien dans la cellule à un détail pret.... le jour et le mois sont inversé !!! je selectionne le 21 mai 2009 et dans la cellule apparait : 05/21/2009.

Comment corriger ce petit souci.

Merci d'avance pour votre aide.

Bonsoir,

Sans voir le code, pas facile, mais plusieurs pistes....

- essaie :

Range("A1") = CDate(Me.Calendar1)

ou :

Range("A1").Value = Format(Me.Calendar1, "m/d/yyyy")

En aveugle.....

un autre sujet qui n'est plus d'actualité et sans suite, le monsieur a peut être trouvé la solution a à son problème d'inversion de jour et du mois.

j'ai le même problème aussi et toujours pas eu de solution car je sélectionne les date à partir d'un calendrier se trouvant dans un UserForm. d'ici là s'il y a une solution je suis preneur. Merci la Team vous êtes géniaux

Bonjour,

=CDate(ta_date) ne marche pas ?

eric

Bonjour, Salut Eric !

Si tu utilises un calendrier, il devrait normalement renvoyer une valeur de type Date sans nécessiter de conversion...

Il faudrait donc savoir d'où provient ce calendrier, et mieux, l'examiner.

Cordialement.

Bonjour ZED21000, le forum,

à tout hasard, pour la cellule destinatrice des dates du calendrier :

met ce format personnalisé : jj/mm/aaaa

dhany

complément en image :

screen

dhany

Bonsoir la team,

avant tout merci pour vos réponses dhany et eriiic ,

après une courte recherche sur le web j'ai réussi à trouvé la solution et je la partage ici si ça peut aider quelqu'un qui à le même problème.

voilà un aperçu du calendrier que j'ai insérer dans mon UserForm

capture4444 capture00001

et voilà le code de mon formulaire, qui m'aide a remplir les champs vide de mon tableau

Private Sub cmdAjouter_Click()

    Dim numLigneVide As Integer
    'On active la feuille "Répa intérieur"
    Worksheets("Répa intérieur").Activate
    'On trouve la dernière ligne vide du tableau et on enregistre le numéro de la ligne dans la variable numLigneVide
    numLigneVide = ActiveSheet.Columns(3).Find("").Row
    'On vérifie que les champs obligatoires sont correctement remplis
    If TxtNom.Text = "" Then
        MsgBox "Veuillez remplir le nom du Client", vbCritical, "Champs manquant"
        TxtNom.SetFocus
    ElseIf TxtDteRec.Text = "" Then
        MsgBox "Veuillez remplir la date de récéption", vbCritical, "Champs manquant"
        TxtDteRec.SetFocus
    Else
        'On remplit les données dans notre tableau
        ActiveSheet.Cells(numLigneVide, 3) = UCase(TxtNom.Text)
        ActiveSheet.Cells(numLigneVide, 4) = TxtDteRec.Text
        ActiveSheet.Cells(numLigneVide, 5) = TxtDesign.Text
        ActiveSheet.Cells(numLigneVide, 6) = TxtRefMachine.Text

effectivement la date s'affiche correctement quand on utilise le calendrier en FR, et en anglais américain ( la date comme mois et le mois comme date) quand on valide l'ajout des données saisie dans le le formulaire.

Pour résoudre ce problème j'ai rajouté cette ligne de commande après le code ci-dessus

'Mettre la date au bon format

ActiveSheet.Cells(numLigneVide, 4) = CDate(TxtDteRec.Value) 'date

merci pour ton retour, et pour avoir mis en partage ta solution !

bonne continuation !

dhany

Si je peux me permettre numLigneVide = ActiveSheet.Columns(3).Find("").Row te donne la 1ère cellule vide en descendant.

C'est à dire que si qq'un t'a effacé une cellule en plein milieu tu vas écraser les autres valeurs de la ligne.

Pour avoir la 1ère ligne disponible, il faut partir du bas pour chercher la dernière remplie et ajouter 1 :

numLigneVide = Cells(rows.count,3).end(xlup).Row+1

eric

Bonsoir à tous,

ZED21000 : J'espère que tu auras remarqué que ton calendrier n'est pas en cause ! Tu affectes la date définie au moyen du calendrier à une TextBox, et à ce stade tu n'as pas d'inversion. Et ensuite tu n'affectes pas la valeur du calendrier à la cellule mais la valeur de la TextBox, c'est toute la différence et c'est là que se produit l'inversion.

Parce que dans ta TextBox tu n'as plus une donnée Date mais un texte, convertible en date, que tu dois explicitement convertir pour éviter l'inversion.

Cordialement.

Si je peux me permettre numLigneVide = ActiveSheet.Columns(3).Find("").Row te donne la 1ère cellule vide en descendant.

C'est à dire que si qq'un t'a effacé une cellule en plein milieu tu vas écraser les autres valeurs de la ligne.

Pour avoir la 1ère ligne disponible, il faut partir du bas pour chercher la dernière remplie et ajouter 1 :

numLigneVide = Cells(rows.count,3).end(xlup).Row+1

eric

Bonne remarque [b]eriiic [/b ] j'ai pas pensé à ça effectivement ta ligne de code est beaucoup plus intéressante, et plus fonctionnelle, même si j'ai protégé ma feuille contre les modifications manuelles, mais avec ta ligne de commande c'est encore mieux pour sécuriser les données contre des pertes. Merci le complément d'information et le partage.

Bonsoir à tous,

ZED21000 : J'espère que tu auras remarqué que ton calendrier n'est pas en cause ! Tu affectes la date définie au moyen du calendrier à une TextBox, et à ce stade tu n'as pas d'inversion. Et ensuite tu n'affectes pas la valeur du calendrier à la cellule mais la valeur de la TextBox, c'est toute la différence et c'est là que se produit l'inversion.

Parce que dans ta TextBox tu n'as plus une donnée Date mais un texte, convertible en date, que tu dois explicitement convertir pour éviter l'inversion.

Cordialement.

Bonsoir MFerrand

c'est exactement ça, au départ je ne comprenais pas pourquoi ( Normal je suis débutant ), et maintenant que tu le dis j'ai bien saisie mon erreur, et compris d'ou venait le problème, et la ligne de commande que j'ai rajouté à la fin de mon code a solutionné le problème et je n'ai plus l'inversion, quelque part elle elle reconvertit le texte dans mon TextBox en Date.

Merci pour l'explication MFerrand , et un grand merci aux personnes actives dans le forum vous êtes géniaux et je progresse bien avec vous.

Le sujet est résolu du coup et solutionné, le sujet ne vient pas de moi à la base donc je ne pourrai pas le mettre en résolu si un modérateur ou un admin peux le faire ça sera sympa. Merci

Rechercher des sujets similaires à "inversion jour mois"