Jeremy planteó un problema que se basa en dos celdas, A1 y C1. Estas celdas están diseñadas para contener pulgadas y milímetros, respectivamente.

Jeremy quiere una forma de que alguien pueda ingresar un valor en A1 y se convierta a milímetros en C1. Por el contrario, podrían ingresar un valor en C1 y se convertiría a pulgadas en A1.

Hacer la conversión, por supuesto, no es el problema real. El problema es que si alguien ingresa un valor en A1, ese valor sobrescribirá cualquier fórmula que pueda estar en esa celda, y significa que cualquier valor subsecuente ingresado en la celda C1 no daría la conversión requerida en el A1 previamente sobrescrito.

Hay un par de formas diferentes de abordar esto. Si no le importa expandir el diseño de su hoja de trabajo para incluir dos celdas más, esas celdas podrían usarse estrictamente para entrada y las celdas A1 y C1 podrían usarse estrictamente para salida. Una de las celdas de entrada podría contener el valor a convertir y la otra podría contener la unidad de medida del valor de entrada (en o mm, por ejemplo).

Por supuesto, si realmente desea limitarse a dos celdas, deberá recurrir al uso de macros para realizar la conversión real. Puede usar un evento de hoja de trabajo que se activa cada vez que se cambia el valor de una celda, y el controlador de eventos podría verificar si la celda que se está cambiando es A1 o C1. La siguiente macro da un ejemplo de cómo podría funcionar:

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

Tenga en cuenta que no es necesario que tenga fórmulas en las celdas A1 o C1; las fórmulas están en la propia macro. Si hay un cambio en la celda A1 (el usuario ingresa pulgadas), la macro cambia el valor de la celda C1. Del mismo modo, si hay un cambio en la celda C1 (el usuario ingresa los milímetros), la macro cambia el valor en la celda A1.

La macro ignora un cambio en cualquier otra celda además de A1 o C1.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (9581) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365. Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:

link: / excel-Developing_Reciprocal_Conversion_Formulas [Desarrollo de fórmulas de conversión recíproca].