XL 2016 Se déplacer dans certaines cellules en VBA

monsieurmarcadet

XLDnaute Junior
Bonjour,

Je trouve un peu partout des solutions à mon problème sur le forum, mais bizarrement jamais une seule qui y répond vraiment... Pourtant c'est assez simple je pense.

J'aimerais qu'en appuyant sur Tab ou entrée, j'impose à l'utilisateur d'aller dans telle cellule et ainsi de suite (qu'il la remplisse ou non d'ailleurs). genre de A1 il va en B3, puis en B5, puis en C6, enfin vous voyez quoi :p Bien sûr je connais la solution de déverrouiller certaines cellules et de protéger le classeur, mais dans mon cas précis, ça ne fonctionne pas. Je pense qu'il n'y a qu'en VBA que j'arriverais à solutionner mon soucis.

Merci beaucoup !
 

Laurent78

XLDnaute Occasionnel
Bonjour,
Je verrai bien un truc du genre Zone Nommée.
Via VBA ou pas sélectionner le nom (dans la Zone Nom, à gauche dans la barre de formule). Lorsqu'un Nom est selectionné, alors, le parcours par Entrée se fait de façon circulaire sur les cellule défini par le Nom. Pas sûr d'être bien pour le coup ...
Bref, cf fichier, sélectionnez Zone2Saisie et appuyer sur Entrée plusieurs fois.

C'est le début du principe.

Je n'ai rien mis en vbs (j'ai laissé ce qu'il y avait).

A+
Laurent
 

Pièces jointes

  • marcadet.xlsm
    15.7 KB · Affichages: 8

monsieurmarcadet

XLDnaute Junior
Bonjour Pierre Jean !

Merci pour la réponse rapide. En effet, ça fonctionne exactement comme je le souhaite. Mais j'aurais 2 réserves (faut bien que je fasse mon chieur... :p)
1/En effet ça fonctionne uniquement avec la touche entrée, l'idéal serait que ça fonctionne avec Tab et Entrée (voire que Tab) et 2/Je ne pige pas ton code, je suis un novice en VBA et je remarque qu'il y a plusieurs macro un peu partout. Or j'ai beaucoup de cellules sur lequel l'utilisateur doit passer, du coup, je vais avoir beaucoup de mal à appliquer ton code.

Je mets un fichier joint, ça sera sans doute plus clair. Je demande pas qu'on me le fasse tout mâché hein, mais si au moins je pouvais le comprendre.

Merci !

Edit, suite réponse Laurent : En effet le fait de nommer la zone, permet de faire fonctionne le bazar avec la touche Tab. Mais par défaut quand on ouvre le fichier, comment faire pour que le nom de la zone soit sélectionné par défaut ?

Merci !
 

Pièces jointes

  • Fiche de liaison V3.xlsm
    46.3 KB · Affichages: 11

Laurent78

XLDnaute Occasionnel
Bonjour Pierre Jean !

Merci pour la réponse rapide. En effet, ça fonctionne exactement comme je le souhaite. Mais j'aurais 2 réserves (faut bien que je fasse mon chieur... :p)
1/En effet ça fonctionne uniquement avec la touche entrée, l'idéal serait que ça fonctionne avec Tab et Entrée (voire que Tab) et 2/Je ne pige pas ton code, je suis un novice en VBA et je remarque qu'il y a plusieurs macro un peu partout. Or j'ai beaucoup de cellules sur lequel l'utilisateur doit passer, du coup, je vais avoir beaucoup de mal à appliquer ton code.

Je mets un fichier joint, ça sera sans doute plus clair. Je demande pas qu'on me le fasse tout mâché hein, mais si au moins je pouvais le comprendre.

Merci !

Edit, suite réponse Laurent : En effet le fait de nommer la zone, permet de faire fonctionne le bazar avec la touche Tab. Mais par défaut quand on ouvre le fichier, comment faire pour que le nom de la zone soit sélectionné par défaut ?

Merci !
Pourquoi le déverrouillage des cellules et la protection de la feuille (et non pas du classeur) n'est pas satisfaisant ?
 

Laurent78

XLDnaute Occasionnel
Donc, je pense qu'il faudrait un mélange. Utiliser d'une part la protection de la feuille et d'autre part gérer par VBA la modification le déplacement.
cf exemple joint. Il faudrait gérer le bouclage de fin.
 

Pièces jointes

  • Changement de déplacement.xlsm
    14.4 KB · Affichages: 8

Laurent78

XLDnaute Occasionnel
Merci Laurent. Ca fonctionne en effet, dès qu'on passe à ta partie "bla". Cependant, ma "navigation" reste quand même plus complexe que "un coup horizontal, un coup vertical". Il faudrait que j'arrive à personnalisé exactement chaque cellule.
Ben oui, c'est pour cela que je te laisse la main pour adapter à ton cas ;) . Mais n'hésite pas si besoin.
As tu regardé le code VBA ? as tu besoin d'explication ?
En 2 mots, il y a une interception en VBA dès que l'on change de cellule.
Dans cette procédure, on regarde où nous sommes et on change la direction par défaut.


Et comme j'y pense, il faudrait aussi remettre le déplacement par défaut en sortie de classeur
@+
 

monsieurmarcadet

XLDnaute Junior
Oui j'ai regardé le code. Donc en gros il dit "Si je suis en E4, alors TAB me fait aller vers la droite" . Et ensuite je repars de la cellule où il m'a mis. Mais quand je change les directions, ça ne fait rien. ToRight ? Down ? Je m'y connais pas assez...

En fait j'ai l'impression que le macro n'est pas pris en compte, il navigue juste dans les cellules non verrouillées.
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Je me permets de m’immiscer avec une solution qui emploie Application.OnKey et une liste des adresses de cellules à suivre sur la base du fichier du post #4
Dans le module de code sur activation : Application.OnKey "~" où tilde = touche entrée (on peut faire avec tab également)
La macro GotoNextCell (dans module1) est lancée alors par la touche Entrée.
Sur désactivation de la feuille on rétablit la fonctionnalité par défaut de la touche entrée.
Pour changer l'ordre de sélection, il suffit de changer les adresses correspondantes dans la constante 'CellsAdr'.
Pour les zones fusionnées, ne rentrer l'adresse de la cellule Haut-Gauche de la zone.

Cordialement
 

Pièces jointes

  • Fiche de liaison V3.xlsm
    44.8 KB · Affichages: 6

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 098
Membres
103 116
dernier inscrit
kutobi87