Rich se demande comment il peut configurer Excel pour que, lorsqu’il entre un seul chiffre, il passe automatiquement à la cellule suivante. Il veut éliminer le fait d’appuyer sur Entrée ou Tabulation pour accéder à la cellule suivante. La valeur de l’entrée pour une plage de cellules sera toujours un seul chiffre positif.

Cela ne peut être fait avec aucun paramètre de configuration natif dans Excel.

Au lieu de cela, vous devrez créer une macro qui gérera l’entrée pour vous. Un choix naturel pour la macro consiste à utiliser l’événement Change pour la feuille de calcul, de sorte que chaque fois qu’une valeur est entrée dans une cellule, l’entrée est «séparée» et remplie dans les cellules de la ligne.

Private Sub Worksheet_Change(ByVal Target As Range)

If IsNumeric(Target.Value) Then         CRow = Target.Row         CColumn = Target.Column - 1         Entry = Target.Value         For i = 1 To Len(Entry)

Cells(CRow, CColumn + i).Value = Mid(Entry, i, 1)

Next     End If End Sub

Cette macro vérifie, tout d’abord, si ce qui a été entré est numérique. Si tel est le cas, les chiffres sont extraits de la valeur et placés dans des cellules consécutives de la ligne.

L’inconvénient d’une telle macro, bien sûr, est que vous devez toujours appuyer sur Entrée pour déclencher l’événement. Si vous souhaitez éviter d’appuyer entièrement sur Entrée, vous devrez vous fier à une approche différente.

Cette technique repose sur la fonction OnKey pour affecter des macros à des frappes spécifiques. Placez le code suivant dans un module de macro standard.

Sub Assigns()

Dim i As Variant     With Application         For i = 0 To 9             .OnKey i, "dig" & i         Next     End With End Sub
Sub ClearAssigns()

Dim i As Variant     With Application         For i = 0 To 9             .OnKey i         Next     End With End Sub
Sub dig0()

ActiveCell.Value = 0     ActiveCell.Offset(1, 0).Select End Sub
Sub dig1()

ActiveCell.Value = 1     ActiveCell.Offset(1, 0).Select End Sub
Sub dig2()

ActiveCell.Value = 2     ActiveCell.Offset(1, 0).Select End Sub
Sub dig3()

ActiveCell.Value = 3     ActiveCell.Offset(1, 0).Select End Sub
Sub dig4()

ActiveCell.Value = 4     ActiveCell.Offset(1, 0).Select End Sub
Sub dig5()

ActiveCell.Value = 5     ActiveCell.Offset(1, 0).Select End Sub
Sub dig6()

ActiveCell.Value = 6     ActiveCell.Offset(1, 0).Select End Sub
Sub dig7()

ActiveCell.Value = 7     ActiveCell.Offset(1, 0).Select End Sub
Sub dig8()

ActiveCell.Value = 8     ActiveCell.Offset(1, 0).Select End Sub
Sub dig9()

ActiveCell.Value = 9     ActiveCell.Offset(1, 0).Select End Sub

Pour démarrer la macro, exécutez la macro Assigns. Par la suite, chaque fois qu’un chiffre est tapé, le chiffre est inséré dans la cellule actuelle et la cellule suivante à droite est sélectionnée. Si vous tapez du texte, rien ne se passe.

(Bien sûr, si vous essayez d’entrer une valeur mixte, telle que B2B, lorsque vous appuyez sur « 2 », c’est ce qui se terminera dans la cellule.) Lorsque vous avez terminé avec ce type d’entrée de données, exécutez la macro ClearAssigns pour finir.

_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 (6614) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:

link: / excelribbon-Accepting_Only_a_Single_Digit [Accepting Only a Single Digit].