Ajuste de los valores de fecha mediante pulsación de tecla (Microsoft Excel)
Robert observa que en un campo de fecha de Quicken, si presiona la tecla más o menos, la fecha aumenta o disminuye en un día. Le gustaría crear este mismo tipo de efecto en Excel.
Este es un problema más difícil de abordar de lo que uno podría suponer, particularmente en Excel. Dado que se debe realizar una acción al presionar una tecla en particular (en este caso, las teclas más o menos), naturalmente se supondría que se podría usar el método OnKey. Considere los siguientes ejemplos:
Sub Start_OnKey() Application.OnKey "{+}", "Plus1" Application.OnKey "-", "Minus1" End Sub
Sub End_OnKey() Application.OnKey "{+}" Application.OnKey "-" End Sub
Sub Plus1() If IsDate(ActiveCell) And Not ActiveCell.HasFormula Then ActiveCell.Value = ActiveCell.Value + 1 End If End Sub
Sub Minus1() If IsDate(ActiveCell) And Not ActiveCell.HasFormula Then ActiveCell.Value = ActiveCell.Value - 1 End If End Sub
De acuerdo con toda la documentación de VBA, lo anterior debería funcionar bien, una vez que ejecute la macro Start_OnKey. Cada vez que se presiona una tecla más o menos, se ejecuta el procedimiento apropiado para incrementar o disminuir la fecha. El problema es que no funcionará en algunas versiones de Excel. ¿Por qué? Porque la tecla más, cuando se presiona, aparentemente coloca algunas versiones de Excel en un modo especial de «entrada de fórmula» que omite el búfer de teclado normal en el que se basa OnKey. Entonces, mientras presiona la tecla menos mientras se selecciona una celda que contiene una fecha produce el resultado deseado, presionar la tecla más no lo hace.
Para aquellas versiones de Excel donde la tecla más es un problema, la única solución es cambiar las pulsaciones de teclas a otra cosa. Por ejemplo, puede cambiar las pulsaciones de teclas para que Ctrl + u se use para incrementar la fecha y Ctrl + d se use para disminuir la fecha:
Sub Start_OnKey() Application.OnKey "^u", "Plus1" Application.OnKey "^d", "Minus1" End Sub
Sub End_OnKey() Application.OnKey "^u" Application.OnKey "^d" End Sub
_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 (7197) se aplica a Microsoft Excel 97, 2000, 2002 y 2003.