Jeremy a posé un problème basé sur deux cellules, A1 et C1. Ces cellules sont conçues pour contenir respectivement des pouces et des millimètres.

Jeremy veut un moyen pour quelqu’un de saisir une valeur dans A1 et la convertir en millimètres dans C1. Inversement, ils pourraient entrer une valeur dans C1 et elle serait convertie en pouces dans A1.

Faire la conversion, bien sûr, n’est pas le vrai problème. Le problème est que si quelqu’un entre une valeur dans A1, cette valeur écrasera toute formule qui peut être dans cette cellule et signifiera que toute valeur ultérieure entrée dans la cellule C1 ne donnerait pas la conversion requise dans l’A1 précédemment écrasé.

Il y a plusieurs façons d’aborder cela. Si cela ne vous dérange pas d’étendre la conception de votre feuille de calcul pour inclure deux autres cellules, ces cellules peuvent être utilisées strictement pour l’entrée et les cellules A1 et C1 peuvent être utilisées strictement pour la sortie. L’une des cellules d’entrée peut contenir la valeur à convertir et l’autre peut contenir l’unité de mesure de la valeur d’entrée (en ou mm, par exemple).

Bien sûr, si vous voulez vraiment vous limiter à deux cellules, vous devrez recourir à des macros pour effectuer la conversion réelle. Vous pouvez utiliser un événement de feuille de calcul qui est déclenché chaque fois qu’une valeur de cellule est modifiée et le gestionnaire d’événements peut vérifier si la cellule en cours de modification est A1 ou C1. La macro suivante donne un exemple de la façon dont cela pourrait fonctionner:

Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False     With ActiveSheet         If Target = .[A1] Then             .[C1].Value = .[A1].Value * 25.4         ElseIf Target = .[C1] Then             .[A1].Value = .[C1].Value / 25.4         End If     End With     Application.EnableEvents = True End Sub

Notez que vous ne devez avoir aucune formule dans les cellules A1 ou C1; les formules sont dans la macro elle-même. S’il y a un changement dans la cellule A1 (les pouces sont entrés par l’utilisateur), la valeur dans la cellule C1 est modifiée par la macro. De même, s’il y a un changement dans la cellule C1 (les millimètres sont entrés par l’utilisateur), la valeur dans la cellule A1 est modifiée par la macro.

Une modification dans toute autre cellule en plus de A1 ou C1 est ignorée par la macro.

_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 (9581) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

link: / excel-Developing_Reciprocal_Conversion_Formulas [Développement de formules de conversion réciproque].