XL 2010 Inversion des dates et des mois entre la feuille Excel et un Userform (VBA) [Résolu]

Serge1963

XLDnaute Nouveau
Bonjour à tous,

j'ai déjà pu voir que ce problème est récurrent et je vous promets que j'ai lu les différents postes avec les solutions proposées mais malheureusement vu mon niveau de connaissance d'Excel je n'ai pas trouvé de solution adaptée à mon cas !!

J'ai placé en annexe une copie épurée de mon fichier.

Le problème est donc que dans ma feuille Excell j'ai plusieurs colonnes qui contiennent des dates au format dd/mm/yy.
Sur base de ces dates, un certain nombre de délais entre les différents stades de mes dossiers sont calculés.
Jusque là pas de problème.
J'ai également crée un UserForm qui me permet de soit consulter mes données, soit les modifier ou encore d'en rajouter. Et là aussi cela fonctionne.

Mon seul problème est qu'il y a une différence d'affichage dans certains cas entre la date dans mon tableau Excell (dd/mm/yy) et celle renseignée dans le TextBox de mon UserForm (mm/dd/yy). J'ai cru comprendre que c'était dû à un problème entre un format local et le format US !!
J'ai vu que certains proposaient des solutions via CDate, CStr, ... mais je suis un peu perdu :(

Lorsque je dois ajouter des données je le fait aussi bien via mon tableau que via mon UserForm.

J'espère que quelqu'un pourra m'aider pour adapter mon code vba ou pourra me conseiller dans la recherche d'une solution ?

Merçi d'avance

Serge
 

Pièces jointes

  • Version test.xlsm
    169.1 KB · Affichages: 54
Dernière modification par un modérateur:

JBARBE

XLDnaute Barbatruc
Re : Inversion des dates et des mois entre la feuille Excel et un Userform (VBA)

Bonjour à tous,

N'ayant pas tellement compris le fichier concernant les dates, je t'envoie le mien avec un exemple de CDate et en cliquant sur le bouton GO !

Bonne journée !
 

Pièces jointes

  • Test_Date.xls
    59.5 KB · Affichages: 57

Serge1963

XLDnaute Nouveau
Re : Inversion des dates et des mois entre la feuille Excel et un Userform (VBA)

Bonjour JBARBE,

merci pour ta réponse mais lorsque j'inscris cette commande CDate j'obtiens un Msg d'erreur "Compile Error - Method or data member not found" et cela concerne la partie .TxtDate
Sur base de tes infos je viens de refaire un essai et en fait si j'ajoute une ligne de données via mon UserForm, les dates dans ma feuille Excell se mettent au bon format et s'affichent correctement dans mon UserForm si je les consulte utltérieurement.
Par contre, si j'ajoute un fichier et des dates via ma feuille Excel, une fois que je consulte les données via mon UserForm, je constate l'inversion du jour et du mois :mad:

Dans le fichier, il y a en fait des colonnes avec les dates et des colonnes qui calculent le Nb de jours ouvrables entre certaines dates et données.

Bon vous me direz qu'il me suffit d'encoder toutes mes nouvelles données via mon UserForm, c'est exact mais bon :D s'il existe un autre moyen je suis preneur

Merci d'avance
Serge
 

Roland_M

XLDnaute Barbatruc
Re : Inversion des dates et des mois entre la feuille Excel et un Userform (VBA)

re

une chose est certaine tes dates sur la feuille sont un peu bizarres, différentes ... !?
même en choisissant un autre format date ça ne modifie pas l'affichage !?

exemple je voie 17/9/15 si je veux changer le format, dans la boite des formats ,
ce format n'est pas reconnue et n'est pas modifiable !?
il faut forcer pour avoir le format exemple 17/09/15 mais il faut ensuite éditer la cellule pour avoir la modif !?
je pense que c'est un format d'origine non reconnue ici !?

ensuite:
3/07/15 si j'édite(f2) apparaît 03/07/2015
4/6/15 si j'édite apparaît toujours 4/6/15 donc non reconnue !?

ça vient de tes formats cellules !
il faut sélectionner toutes tes cellules dates et mettre un format identique à toutes
ensuite pour beaucoup tu devras les éditer pour obtenir le bon résultat !

ensuite seulement on pourra rediscuter des dates dans l'userform !

bon courage !
 

Efgé

XLDnaute Barbatruc
Re : Inversion des dates et des mois entre la feuille Excel et un Userform (VBA)

Bonjour Serge1963, JBARBE, Roland_M
Je pense qu'il faut utiliser FOrmulaLocal lors du transfert des données depuis la TextBox vers la feuille.
Par exemple dans le module Private Sub CommandButtonModify_Click()
Remplacer
VB:
 Cells(no_ligne, 1).Value = TextBoxFileNr.Value
Par
VB:
 Cells(no_ligne, 1).FormulaLocal = TextBoxFileNr.Value
pareil pour la CommandButtonInsertNewFile_Click()
Remplacer toutes les lignes de type
VB:
 Cells(derligne, 1) = TextBoxFileNr.Value
Par
VB:
 Cells(derligne, 1).FormulaLocal = TextBoxFileNr.Value

Et faire tout le reste de la même manière.
Cordialement
EDIT
Ce qui n'enlève rien aux judicieuses remarques de Roland_M
 

Serge1963

XLDnaute Nouveau
Re : Inversion des dates et des mois entre la feuille Excel et un Userform (VBA)

Bonjour JBarbe, Roland_M et Efgé,

Avant toute chose, merci pour vos réponses, je viens de corriger le problème de format de dates dans la feuille Excel.
Grâce à l'adaptation de mon Code VBA telle que proposée par Efgé, le problème semble être résolu, mes dates s'inscrivent maintenant correctement (bon format) aussi bien lorsque je modifie des données que lorsque je crée un nouveau dossier.
On peut donc s'attaquer aux problèmes de l'affichage inversé du jour et du mois dans le UserForm :eek:
Ce problème là persiste toujours. .
J'ai tenté la solution proposée par JBarbe mais vu mon faible niveau de connaissance je ne vois pas comment adapter sa solution à mon code.
Encore un grand merci pour votre aide précieuse.
Serge
PS : J'ai placé en annexe un exemplaire du fichier adapté en tenant compte de vos remarques !
 

Pièces jointes

  • Test version.xlsm
    125.6 KB · Affichages: 69

Efgé

XLDnaute Barbatruc
Re : Inversion des dates et des mois entre la feuille Excel et un Userform (VBA)

Bonjour Serge1963, Roland_M, JBARBE
A mon avis, tu aurais pu tenter ceci:
Dans la Private Sub CommandButtonGoTo_Click()
Modifier toute les lignes de type:
VB:
TextBoxFileNr.Value = Cells(no_ligne, 1).Value
Par
VB:
TextBoxFileNr.Value = Cells(no_ligne, 1).FormulaLocal
Cordialement
 

Serge1963

XLDnaute Nouveau
Re : Inversion des dates et des mois entre la feuille Excel et un Userform (VBA)

Re-bonjour Efgé,

je viens d'essayer mais j'obtiens (dans mon UserForm) une valeur numérique en cinq chiffres en lieu et place de mes dates.

Encore merci pour ton aide en tout cas
 

Efgé

XLDnaute Barbatruc
Re : Inversion des dates et des mois entre la feuille Excel et un Userform (VBA)

Re

Alors essais ceci dans la Private Sub CommandButtonGoTo_Click() , pour toute les textebox comportant une date (et seulement celles-ci)
Une textbox porte du texte..
Ensuite on force le format d'affichage :
VB:
TextBoxInitial.Text = Format(Cells(no_ligne, 8).FormulaLocal, "dd/mm/yyyy")
Cordialement
 

Serge1963

XLDnaute Nouveau
Re : Inversion des dates et des mois entre la feuille Excel et un Userform (VBA)

Bonjour JBarbe, Roland_M et Efgé,

un grand merci à tous pour vos précieux conseils, mon problème est résolu graçe à vos interventions.
Un merci tout particulier à Efgé dont les explications sont très claires, efficaces et surtout adaptées à mon niveau de débutant :eek:

Bonne journée à tous et peut-être à un de ces jours !!

Un utilisateur très content de fréquenter ce site
Serge
 

Discussions similaires