XL 2010 Déplacement d'une cellule à une autre avec la touche "Entrée"

Renaud22

XLDnaute Junior
Bonjour à tous,

J'apprécierais qu'on m'aide à concevoir une macro, sans protéger la feuille, qui permettrait de déplacer le curseur dans des cellules précises en appuyant sur la touche "Entrée".

Par exemple :
Lorsque le curseur est sur la cellule "C8", en appuyant sur la touche "Entrée", sans que des données soient nécessairement entrées dans cette cellule, je veux me déplacer à la cellule "C7".

Lorsque le curseur est sur la cellule "C7", en appuyant sur la touche "Entrée", sans que des données soient nécessairement entrées dans cette cellule, je veux me déplacer à la cellule "B10".

En résumé, en appuyant sur la touche "Entrée", je dois être en mesure de me déplacer selon la séquence suivante : "C8", "Entrée -> "C7", "Entrée -> "B10".

En vous remerciant par avance pour votre précieuse aide.

Salutations,

Renaud22
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir @Renaud22 :),

Un essai dans le fichier joint.

Dans le module de ThisWorkbook, on trouve la procédure évènementielle :
VB:
Private Sub Workbook_Open()
   Application.OnKey "{ENTER}", "RCRC"
   Application.OnKey "~", "RCRC"
End Sub

Dans le module "Module1", on trouve la procédure RCRC()
VB:
Public Sub RCRC()
Dim s
   If ActiveSheet.Name = "Feuil1" Then
      If Application.Selection.Count = 1 Then
         s = LCase(ActiveCell.Address(0, 0))
         Select Case s
            Case "c8": Range("c7").Select
            Case "c7": Range("b10").Select
            Case "b10": Range("c8").Select
         End Select
      End If
   End If
End Sub


J'ai considéré qu'une fois la cellule B10 sélectionnée, la touche entrée sélectionnait la cellule C8 (on boucle sur C8, C7, B10 puis à nouveau C8, C7, B10, etc). Si on ne désire pas boucler, effacer l'instruction "Case "b10": Range("c8").Select".

nota : pour l'instant, on a restreint le fonctionnement ) à la seule feuille "Feuil1"
 

Pièces jointes

  • Renaud22- déplacement- v1.xlsm
    17.6 KB · Affichages: 10
Dernière édition:

Renaud22

XLDnaute Junior
Merci "mapomme" pour votre réponse.

J'ai oublié de mentionner que la macro doit fonctionner sur n'importe laquelle des feuilles actives (pas uniquement la feuille "Feuil1"). La touche "Entrée" doit permettre de passer à la cellule suivante (cellule du bas) pour n'importe laquelle des cellules à l'exception des cellules "C8, C7 et B10 qui doivent respecter la séquence déterminée.

Salutations,

Renaud22
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,

J'ai oublié de mentionner que la macro doit fonctionner sur n'importe laquelle des feuilles actives (pas uniquement la feuille "Feuil1"). La touche "Entrée" doit permettre de passer à la cellule suivante (cellule du bas) pour n'importe laquelle des cellules à l'exception des cellules "C8, C7 et B10 qui doivent respecter la séquence déterminée.
Voir la version v2.

Dans le module de ThisWorkbook, on trouve les procédures évènementielles :
VB:
Private Sub Workbook_Open()
   Application.OnKey "{ENTER}", "RCRC"
   Application.OnKey "~", "RCRC"
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
   Application.OnKey "{ENTER}"
   Application.OnKey "~"
   Application.MoveAfterReturn = True
   Application.MoveAfterReturnDirection = xlDown
End Sub

Dans le module "Module1", on trouve la procédure RCRC() :
VB:
Public Sub RCRC()
Dim s
   If Application.Selection.Count = 1 Then
      s = LCase(ActiveCell.Address(0, 0))
      Select Case s
         Case "c8": Range("c7").Select
         Case "c7": Range("b10").Select
         Case "b10": Range("c8").Select
         Case Else: ActiveCell.Offset(1).Select
      End Select
   End If
End Sub
 

Pièces jointes

  • Renaud22- déplacement- v2.xlsm
    19.6 KB · Affichages: 8

Discussions similaires

Statistiques des forums

Discussions
314 645
Messages
2 111 536
Membres
111 184
dernier inscrit
amiko