Ajustement des valeurs de date en appuyant sur une touche (Microsoft Excel)
Robert note que dans un champ de date Quicken, s’il appuie sur la touche plus ou moins la date incrémente ou décrémente d’un jour. Il aimerait créer ce même type d’effet dans Excel.
C’est un problème plus difficile à aborder qu’on pourrait le supposer, en particulier dans Excel. Puisqu’une action doit être entreprise en appuyant sur une touche particulière (dans ce cas, les touches plus ou moins), on supposerait naturellement que la méthode OnKey pourrait être utilisée. Prenons les exemples suivants:
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
Selon toute la documentation VBA, ce qui précède devrait fonctionner correctement, une fois que vous avez exécuté la macro Start_OnKey. Chaque fois que vous appuyez sur une touche plus ou moins, la procédure appropriée est exécutée pour incrémenter la date ou la décrémenter. Le problème est que cela ne fonctionnera pas sur certaines versions d’Excel. Pourquoi? Parce que la touche plus, lorsqu’elle est enfoncée, met apparemment certaines versions d’Excel dans un mode spécial «entrée de formule» qui contourne le tampon de clavier normal utilisé par OnKey. Ainsi, tout en appuyant sur la touche moins alors qu’une cellule contenant une date est sélectionnée produit le résultat souhaité, appuyer sur la touche plus ne le fait pas.
Pour les versions d’Excel où la touche plus est un problème, la seule solution est de changer les frappes à autre chose. Par exemple, vous pouvez modifier les pressions sur les touches afin que Ctrl + u soit utilisé pour incrémenter la date et Ctrl + d pour décrémenter la date:
Sub Start_OnKey() Application.OnKey "^u", "Plus1" Application.OnKey "^d", "Minus1" End Sub
Sub End_OnKey() Application.OnKey "^u" Application.OnKey "^d" End Sub
_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 (7197) s’applique à Microsoft Excel 97, 2000, 2002 et 2003.