Empêcher les modifications de formatage automatique de la date (Microsoft Excel)
Dans une feuille de calcul, Carol a une cellule au format «Comptabilité». Si quelqu’un entre accidentellement une date (mm / jj / aa) dans cette cellule, Excel modifie automatiquement la mise en forme de la cellule pour afficher la date correctement. Cependant, si elle essaie de saisir à nouveau un montant en dollars dans cette cellule, il ne reviendra pas au format «Comptabilité»; la cellule reste au format de date.
C’est très bien si l’utilisateur voit l’erreur et la corrige, mais cela se produit souvent dans un modèle avec du texte « standard » et le modèle est protégé sans accès aux cellules de formatage. Carol se demande si quelqu’un a des idées sur les raisons pour lesquelles cela se produit et comment y remédier.
Si vous voulez un moyen rapide d’empêcher le changement de formatage dans des feuilles de calcul simples, procédez comme suit:
-
Affichez la boîte de dialogue Options Excel. (Dans Excel 2007, cliquez sur le bouton Office, puis sur Options Excel. Dans Excel 2010 ou une version ultérieure, affichez l’onglet Fichier du ruban, puis cliquez sur Options.)
-
Sur le côté gauche de la boîte de dialogue, cliquez sur Avancé.
-
Faites défiler jusqu’au bas des options avancées. (Voir la figure 1.)
-
Assurez-vous que l’option Entrée de formule de transition est sélectionnée.
-
Cliquez sur OK.
Cette option particulière oblige Excel à évaluer (analyser) les informations saisies de la même manière que Lotus 1-2-3. Cela signifie que les dates ne sont plus analysées comme des dates, mais comme une formule. Ainsi, si quelqu’un entre 11-16-13 dans une cellule, alors il est analysé comme « onze moins seize moins treize » et affiché dans la cellule comme -18. Comme il n’a pas été analysé en tant que date, le format de comptabilité est laissé associé à la cellule, comme vous le souhaitez.
Cette approche présente cependant des inconvénients. Étant donné qu’Excel analyse par la suite toutes les entrées selon les règles Lotus, vos utilisateurs peuvent conclure que votre feuille de calcul ne fonctionne pas correctement car elle ne suit pas les mêmes règles que les autres feuilles de calcul Excel. C’est pourquoi j’ai mentionné que cette approche peut être acceptable pour les feuilles de calcul simples; vous devrez déterminer si votre feuille de calcul est admissible.
Si vous ne souhaitez pas modifier la façon dont l’analyse est effectuée, la meilleure approche peut être d’ajouter des gestionnaires d’événements à votre feuille de calcul. Par exemple, vous pouvez inclure un gestionnaire d’événements qui regarde où les données ont été entrées et garantit que toute modification apportée à ces cellules conserve la mise en forme souhaitée.
Private Sub Worksheet_Change(ByVal Target As Range) Dim rngToCheck As Range Set rngToCheck = Range("E2") If Intersect(Target, rngToCheck) Then rngToCheck.NumberFormat = _ "_($ #,##0.00_);_($ (#,##0.00);_($* "" - ""??_);_(@_)" End If End Sub
Dans cet exemple, la cellule dans laquelle vous souhaitez conserver le format de comptabilité est E2, tel qu’affecté à la variable rngToCheck. Si vous souhaitez forcer le format sur une plage de cellules différente, modifiez simplement la ligne d’affectation.
Si vous souhaitez un peu plus de flexibilité, vous pouvez utiliser un autre ensemble de gestionnaires d’événements. Par exemple, les exemples suivants utilisent à la fois les événements SelectionChange et Change de l’objet Worksheet. Ils aboutissent à quelque chose qui ne force pas tellement un format particulier, mais cela empêche le formatage d’une cellule d’être changé par rapport à ce qu’il était auparavant. Ainsi, cette approche protège tout formatage, pas seulement l’application d’un format comptable.
Dim nFormat As String Private Sub Worksheet_Change(ByVal Target As Range) Dim rngToCheck As Range Set rngToCheck = Range("E2") If Intersect(Target, rngToCheck) Then rngToCheck.NumberFormat = nFormat End If End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) nFormat = Target.NumberFormat End Sub
Le gestionnaire d’événements SelectionChange se déclenche en premier, définissant le format existant dans la variable nFormat. Ensuite, le gestionnaire d’événements Change se déclenche et redéfinit la mise en forme sur l’original.
Une autre approche que vous pouvez essayer consiste à utiliser la validation des données. Cette approche ne nécessite aucune macros et convient donc si votre classeur sera utilisé par des personnes qui peuvent avoir des macros désactivées sur leur système.
Suivez ces étapes générales:
-
Sélectionnez la ou les cellules dont vous souhaitez appliquer la mise en forme.
-
Affichez l’onglet Données du ruban.
-
Cliquez sur l’outil de validation des données dans le groupe Outils de données. Excel affiche la boîte de dialogue Validation des données.
-
À l’aide de la liste déroulante Autoriser, choisissez Personnalisé. (Voir la figure 2.)
-
Dans la zone Formule, tapez ce qui suit: = CELL (« format », B2) = « C2 ». Définissez les autres paramètres de validation des données selon vos besoins.
-
Cliquez sur OK.
La formule (étape 5) vérifie la mise en forme de la cellule et autorise ou interdit l’entrée en fonction de cette mise en forme. Dans la formule citée, le format C2 est le nom interne du format Comptabilité. Vous pouvez facilement changer les codes de la formule en un autre format, tel que « , 2 », « C2 », « C0 », « C2- » ou « C0- » selon vos préférences. Le moyen le plus simple de déterminer le format à utiliser est de formater une cellule, comme vous le souhaitez, avant d’appliquer la règle de validation des données. (Par exemple, disons que vous appliquez la mise en forme à la cellule L13.) Vous pouvez ensuite utiliser cette formule dans une cellule différente pour voir quel format Excel pense que vous avez appliqué:
=CELL("format",L13)
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (12729) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365.