Calendrier amovible et inversion jour-mois Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
p
pierrebastres
Membre habitué
Membre habitué
Messages : 66
Appréciation reçue : 1
Inscrit le : 14 octobre 2017
Version d'Excel : 2013 FRANCAIS

Message par pierrebastres » 27 juin 2018, 21:58

Bonjour à tous,

j'ai récupéré un calendrier amovible développé par Leakim et adapté.
Malgré des heures d'essais je ne parviens nullement à récupérer la date au format dd/mm/yyyy :
comme vous le verrez, la valeur de date est affectée à une variable puis une textbox prend la valeur de la variable (pour que k'utilisateur sache ce qu'il a sélectionné), puis enfin ne cellule prend la valeur de la textbox.
Une précision: Le nom de la textbox d'affichage est obligatoirement celui que j'ai donné, je ne peux le changer.
Voici un fichier pour illustrer le propos.
J'ai essayé: utilisation de CDate, en enlevant le format ds cellules de destination, en changeant le format des cellules de destination, en inversant dd/mm/yyyy dans le calendrier, et en testant les combinaisons de ces 4 pistes de solutions.
QQ chose m'échappe!
Merci d'avance de votre aide.

Pierre
ERREUR_CALENDRIER.xlsm
(70.4 Kio) Téléchargé 21 fois
Avatar du membre
LouReeD
Contributeur
Contributeur
Messages : 7'090
Appréciations reçues : 370
Inscrit le : 14 octobre 2014
Version d'Excel : 2013 FR, 2016 FR
Contact :
Téléchargements : Mes applications

Message par LouReeD » 27 juin 2018, 23:04

Bonsoir,

pour commencer je n'ai pas trouvé de bouton pour lancer un quelconque USF.
Donc j'ai lancé "manuellement" celui de saisie...
J'ai choisi le 13/06/2018 comme date, j'ai répondu "essai" dans les différents ComboBox puis j'ai validé et voilà le résultat :
13-06-2018.png
La date c'est inscrite correctement...
Il faut peut être que vous alliez voir du coté de la mise en forme des dates de votre OS.
Sous Windows, cliquez sur l'heure en bas à droite de la barre des tâches, "modifier les paramètres dates et heures", "changer les paramètres du calendrier", et là vous pouvez choisir le format date court et long qui vous convient.
Enfin si le problème vient de là... ;;)

@ bientôt

LouReeD
Quelques règles à lire ICI ;;)
______________________________________________________Vous pouvez allez faire un tour sur : Index de "Mes applications" ;;)
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'898
Appréciations reçues : 694
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 28 juin 2018, 03:40

Bonjour Pierre, LouReeD,

j'te retourne ton fichier avec plein d'modifs un peu
partout (y compris l'code VBA et ton formulaire) :
ERREUR_CALENDRIER.xlsm
(58.93 Kio) Téléchargé 14 fois
à toi de tout vérifier soigneusement !  :wink:

pour tes erreurs de dates, j'crois qu'c'était juste de mauvaises données en colonne A :

* en A2 : 13/06/2008 ! j'ai mis 2018 ; et pourquoi le 13/06 est avant le 01/06 ? j'ai donc mis : 01/06/2018

* en A9:A12 : 06/01/2018 au lieu de 01/06/2018 (ce 2ème point est bien sûr le plus important !  ::D)

merci de me donner ton avis.  :roll:

dhany  Image
p
pierrebastres
Membre habitué
Membre habitué
Messages : 66
Appréciation reçue : 1
Inscrit le : 14 octobre 2017
Version d'Excel : 2013 FRANCAIS

Message par pierrebastres » 28 juin 2018, 07:23

Bonjour,
merci de vos posts,cependant le problème persiste:
le 2 juin me renvoie toujours le 6 février.
Dhany, les différences entre la ligne 2 et les autres vient du fait que j'ai fait de multiples essais sur les formats de cellules.
LouReed, le pb se pose qd la valeur du jour est <=12!
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'898
Appréciations reçues : 694
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 28 juin 2018, 07:31

Pierre a écrit :le pb se pose qd la valeur du jour est <=12 !
c'est pas plutôt quand la valeur du jour est >12 ? ça signifierait qu'le jour est pris pour le mois, et comme un mois ne peut pas dépasser 12, car mois maxi = 12 = décembre ! exception : y'a parfois un 13ème mois, sur les fiches de paye !!!  :P :lol:

dhany
p
pierrebastres
Membre habitué
Membre habitué
Messages : 66
Appréciation reçue : 1
Inscrit le : 14 octobre 2017
Version d'Excel : 2013 FRANCAIS

Message par pierrebastres » 28 juin 2018, 07:38

le 1er juin est renvoyé comme 6 janvier, le 2 juin comme 6 février etc...
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'898
Appréciations reçues : 694
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 28 juin 2018, 07:40

donc tes dates sont bien inversées :

1er juin = 01/06, qui devient 06/01 = 6 janvier
2 juin = 02/06, qui devient 06/02 = 6 février
etc...

et c'est juste sur la feuille, ou dans le formulaire, ou lors de son utilisation ?
quand c'est sur la feuille, précise sur quelle(s) ligne(s) / colonne(s).

dhany
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 448
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 28 juin 2018, 07:59

Bonjour, Salut à tous !

Une solution rustine rapide : tu remplaces = Date_mouvement.Value par = ChoixDate dans ta procédure d'affectation (à deux reprises).

Pas le temps de te modifier tout ce qui justifierait de l'être ! ;;) Ni de fournir des explications détaillées! 8[] Mais fallait le faire de provoquer l'inversion jour/mois classique avec tout en main pour l'éviter ! :lole:

Cordialement.
1 membre du forum aime ce message.
p
pierrebastres
Membre habitué
Membre habitué
Messages : 66
Appréciation reçue : 1
Inscrit le : 14 octobre 2017
Version d'Excel : 2013 FRANCAIS

Message par pierrebastres » 28 juin 2018, 14:18

Merci MFerrand, Dhanny et les autres,
j'ai trouvé une solution pr pouvoir utiliser CDate, je nomme mes TextBox ds lesquelles st reportées les dates du calendrier "Date_...." et
avec un If la valeur reportée sera un CDate. Cela me permet de conserver le rapatriement des valeurs de ts les contrôles par boucle.

For Each ctl In Me.Controls
If TypeOf ctl Is MSForms.TextBox Or TypeOf ctl Is MSForms.ComboBox Then
If ctl.Name Like "*date*" Then
MsgBox (ctl.Name)
Sheets("SAISIE QUANTITES QUALITE LAIT").Cells(i, Range(ctl.Name).Column).Value = CDate(ctl.Value)
Else
Sheets("SAISIE QUANTITES QUALITE LAIT").Cells(i, Range(ctl.Name).Column).Value = ctl.Value
End If
Else
End If
Next ctl
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'898
Appréciations reçues : 694
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 28 juin 2018, 14:24

merci pour ton retour, et pour avoir passé le sujet en résolu !  :)  bonne continuation !  :trfl:

dhany
1 membre du forum aime ce message.
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message