Comment définir le format de la date lorsque vous insérez manuellement la date sur excel, sans modifier les paramètres régionaux?

Dans mes paramètres régionaux, la date est insérée comme dd / mm / aaaa ou des variations de celles-ci (y compris jj-mm-aaa). J'ai fait un formulaire Excel (dans le fichier Excel normal), déjà formaté pour afficher la date comme dd / mm / aaaa, mais lorsque j'ai tapé "05/04/2015", il sera affiché comme "04/05/2015". Je sais que cela peut être résolu en modifiant le réglage régional dans mon contexte local, mais je dois distribuer ce formulaire à beaucoup de gens sans connaissance du changement de paramètres régionaux et en supposant que personne ne peut enseigner comment, d'où ma question:

Existe-t-il un moyen d'entrer "05/04/2015" et être reconnu comme "5 avril 2015", sans devoir modifier les paramètres régionaux?

Note additionnelle: Quand je veux dire "4 mai 15" (tapé en 4/5/15), Excel reconnaîtra cela comme "5 avril 15" car Excel prend le format "mm / jj / aa". J'ai besoin de changer le comportement par défaut de Excel pour prendre "dd / mm / aaaa", car c'est ainsi que les utilisateurs entrent.

Si possible, le paramètre devrait également inclure / intégrer dans le fichier pour permettre aux utilisateurs finaux d'utiliser le formulaire sans même modifier le paramètre.

Je ne suis pas familier avec les macros et VBA, mais je suis prêt à essayer 🙂

EDIT: ceci est lié à ma question: Comment changer le format de la date de jj-mm-aaaa à jj-mm-aa dans la barre de formule de MS-EXCEL?

Mais je n'ai pas besoin de modifier la barre de formule entière, pourvu que Excel reconnaisse que je tape le format dd / mm / aa.

L'événement Worksheet_Change pourrait essentiellement accomplir ce que vous demandez, mais vous devez être certain que l'utilisateur a l'intention de changer les choses. J'ai ajouté une boîte de choix 'Yes/No' à ma solution pour éviter tout changement accidentel. Faire cela sans choix est dangereux car si vous essayez de modifier une valeur existante, cela changerait en formatage original.

Ce code devrait «vivre» dans le code VBA pour la feuille sur laquelle vous voulez agir:

 Private Sub Worksheet_Change(ByVal Target As Range) Dim iDay, iMonth, iYear As Integer Dim solutionRange As Range 'the cells you want the date to change for Set solutionRange = Range("D4:D12") 'only triggers if the user's changing one cell If Target.Count = 1 Then If (Not (Intersect(solutionRange, Target) Is Nothing) And (Target.Value > 0)) Then 'disable application events so this change doesn't trigger itself Application.EnableEvents = False iDay = Left(Target.Value, 2) iMonth = Mid(Target.Value, 4, 2) iYear = Right(Target.Value, 4) ' Give the user a choice to say whether they need the date changed. You *can* remove both the 'If' and 'End If' if you really need to, but I'd strongly suggest keeping them. If (MsgBox("Have you entered your date in the format 'MM/DD/YYYY'?", vbYesNo) = vbYes) Then Target.Value = DateValue(iMonth & "/" & iDay & "/" & iYear) End If Application.EnableEvents = True End If End If End Sub 

Je ne pense pas que vous pouvez modifier la valeur par défaut. Il est particulièrement gênant de réparer lorsque vous importez des données à l'étranger.

Les manières les moins désordonnées de faire cela, je peux penser à une manière manuelle …


Option 1: Nous pourrions accepter les entrées au format texte et les placer dans les cellules, de cette façon, Excel n'essaye pas de les interpréter comme dates. Ensuite, dans une cellule adjacente, nous pourrions utiliser la fonction DATE avec LEFT, RIGHT et MID. Par exemple (spécifiez que l'utilisateur doit entrer la date en entier MM / JJ / AAAA):

Cell A1: 05/04/2015

Cell B1: = DATE (DROITE (A1,4), GAUCHE (A1,2), MID (A1,4,2))


Option 2: demande que l'utilisateur entre le «jour», le «mois» et l'année »en trois cellules ou champs distincts, ce qui pourrait être meilleur ou pire selon votre configuration.

Quoi qu'il en soit, bonne chance!

Je sais parfaitement de quoi vous parlez. J'aime taper YY-MM-DD. Le paramètre pour le modifier à ce que vous voulez n'est pas dans Excel. Le réglage que vous voulez est dans Windows. Il est caché quelque part dans le panneau de contrôle "temps et langue".

Je devais passer à un réglage avancé "Modifier le format de l'heure et de la date" et modifier le paramètre "Date courte".

Selon le système d'exploitation que vous utilisez, les directions pourraient être un peu différentes.

J'espère que cela t'aides.

Mettez en surbrillance la colonne en question, cliquez avec le bouton droit de la souris sur la colonne sélectionnée, puis définissez les cellules … Sélectionnez Personnalisé et cliquez sur le champ qui indique Général, tapez "dd / mm / aaaa". Cela devrait fonctionner.

Je l'ai compris avec l'inspiration de la réponse de Lance ci-dessus. Vous pouvez modifier le paramètre de la date de Windows de la manière suivante (ne savez pas comment le faire dans un autre système d'exploitation):

  1. Ouvrir le panneau de configuration
  2. Cliquez sur 'Changer de clavier et d'autres méthodes d'entrée' – La fenêtre Région et langue apparaît
  3. Changer la date courte à mm / jj / aaaa ou comme vous le désirez
  4. Change Long Date à MMMM-dd-yy ou à votre guise
  5. Cliquez sur OK