Comment changer l'ordre "de tabulation" des cellules

andrea73

XLDnaute Nouveau
Bonjour à tous

je suis nouveau sur le forum et je suis heureux de poser ma première question...

j'ai crée un "pseudo formulaire" sur une feuille et je souhaite le remplir en suivant un ordre de tabulation précis... j'explique :

dans les cellules A1:B5 se trouvent les coordonnées des "zones à saisir", elles sont dans l'ordre souhaité
A=ligne, B=colonne
3,6
5,6
6,6
3,8
4,8
etc...

je souhaite que le curseur de cellule se deplace en suivant cet ordre

j'espere que les explications sont assez claires, sinon je fabriquerai un XLS de demo

merci à tous
 

camarchepas

XLDnaute Barbatruc
Re : Comment changer l'ordre "de tabulation" des cellules

Bonjour et bienvennue sur Xld Andrea ,

Voir le code dans le module de la feuille en question
 

Fichiers joints

andrea73

XLDnaute Nouveau
Re : Comment changer l'ordre "de tabulation" des cellules

Bonjour

Merci pour la rapidité de la proposition

comme dit nono une question bien posée est déjà une solution

donc je reformule ma question par ce que la solution ne répond pas exactement au problème...

plus de précisions dans le fichier "corrigé" que tu m'avais joint

Merci
 

Fichiers joints

andrea73

XLDnaute Nouveau
Re : Comment changer l'ordre "de tabulation" des cellules

Bonjour et merci une fois plus...

mais ce n'est tjs pas la bonne réponse...

j'avais déjà pensé à cette solution de protection de feuille, cpdt elle ne me convient pas !

je veux en effet pouvoir modifier mon "tableau de l'ordre de tabulations" pour que les cellules qui y sont référencées soient sélectionnées dans cette ordre précis

si par exemple dans A:B (cellules bleues) j'ai (3-6,5-8,6-6,3-8,4-8) la solution avec protection ne fonctionne pas... désolé mais (re)merci quand même pour ta réponse
 

camarchepas

XLDnaute Barbatruc
Re : Comment changer l'ordre "de tabulation" des cellules

Andréa ,

Bon , je joue à nouveau .

Seule les cases bleues sont accessibles ainsi que les cellules désignées par celle-ci .
La tabulation ce réalise uniquement sur les cases grises .

le changement de feuille réinitialise le pointeur à la premiere cellule .
 

Fichiers joints

andrea73

XLDnaute Nouveau
Re : Comment changer l'ordre "de tabulation" des cellules

bonjour

c'est exactement ce que je souhaitais ... !

merci pour toutes tes réflexxxxxions, je ne pensais pas la chose aussi compliquée... je vais pouvoir adapter ce formulaire à mon logiciel beaucoup plus complet
mais en tout cas "merci camarchpas puis que cà marche"

je te laisse aux autres XLDnautes

à bientôt
 

PMO2

XLDnaute Accro
Re : Comment changer l'ordre "de tabulation" des cellules

Bonjour,

Une autre approche en mémorisant l'ordre des tabulations dans un objet Collection.
Les tabulations sont définies en colonne A d'une autre feuille pour une question de praticité et de non ingérence sur la feuille test.
La feuille des tabulations doit être renseignée à partir de A1 jusqu'à An et peut être masquée.

Code à copier dans la fenêtre de code de la feuille concernée
Code:
Dim myColl As New Collection

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim S As Worksheet
Dim R As Range
'---
If myColl.Count = 0 Then
  Set S = Sheets("___Tabulations")
  For Each R In S.[a1].CurrentRegion
    myColl.Add CStr(R), CStr(R)
  Next R
End If
'---
Set R = ActiveSheet.Range(myColl(1))
Application.EnableEvents = False
If Not Target Is R Then R.Select
Application.EnableEvents = True
If myColl.Count > 0 Then myColl.Remove 1
End Sub
 

Fichiers joints

MJ13

XLDnaute Barbatruc
Re : Comment changer l'ordre "de tabulation" des cellules

Bonjour à tous

Sinon, on peut ausi faire ainsi de façon à appuyer sur la touche Enter pour valider chaque case à prendre en compte:

Dans Thisworkbook:

Code:
Private Sub Workbook_Open()
Sheets(2).Select
Sheets(1).Select
End Sub
Et dans la Feuil1:

Code:
Private Sub Worksheet_Activate()
Cells(3, 6).Select
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Address = "$F$4" Then Cells(5, 6).Select
If ActiveCell.Address = "$F$6" Then Cells(6, 6).Select
If ActiveCell.Address = "$F$7" Then Cells(3, 8).Select
If ActiveCell.Address = "$H$4" Then Cells(4, 8).Select
If ActiveCell.Address = "$H$5" Then Cells(3, 6).Select
End Sub
 

andrea73

XLDnaute Nouveau
Re : Comment changer l'ordre "de tabulation" des cellules

Bonjour PM02

merci pour ta proposition.........

pour l'instant je me consacre à l'approche de camarchepas qui me convient bien...
 

andrea73

XLDnaute Nouveau
Re : Comment changer l'ordre "de tabulation" des cellules

Merci et Bonjour MJ13

la solution de camarchepas me convient tres bien pour l'instant et colle plus à la philosophie de mes besoins...

quoi qu'il en soit je ne m'attendais pas a autant de reponses....

merci à tous....
 

Touna

XLDnaute Junior
Re : Comment changer l'ordre "de tabulation" des cellules

Bonjour,
J'ai encore besoin de vos lumières, j'ai opté pour la solution de PMO2, en m'aidant du fichier "Fixer l'ordre des tabulations d'une feuille Excel.xlsm".
Cette solution me va très bien et répond à une partie de mes besoins, sauf que j'aimerai avoir la possibilité de reprendre la main avec la souris pour revenir en arrière ou sélectionner la cellule de mon choix.
Merci d'avance,
Touna
 
Dernière édition:

PMO2

XLDnaute Accro
Re : Comment changer l'ordre "de tabulation" des cellules

sauf que j'aimerai avoir la possibilité de reprendre la main avec la souris pour revenir en arrière ou sélectionner la cellule de mon choix.
Bonjour,

Il faut stopper (puis réactiver) l'événement Worksheet_SelectionChange.

1) copiez le code suivant dans la fenêtre de code de la feuille concernée
Code:
Dim myColl As New Collection

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim S As Worksheet
Dim R As Range
'---
If Not BoolStopTabulation Then  '///ajout
  If myColl.Count = 0 Then
    Set S = Sheets("___Tabulations")
    For Each R In S.[a1].CurrentRegion
      myColl.Add CStr(R), CStr(R)
    Next R
  End If
  '---
  Set R = ActiveSheet.Range(myColl(1))
  Application.EnableEvents = False
  If Not Target Is R Then R.Select
  Application.EnableEvents = True
  If myColl.Count > 0 Then myColl.Remove 1
End If    '///ajout
End Sub
2) copiez le code suivant dans un module Standard
Code:
Public BoolStopTabulation As Boolean

Sub StopAndGo_Tabulation()
BoolStopTabulation = Not BoolStopTabulation
End Sub
La procédure StopAndGo_Tabulation peut être relié à un Bouton, une combinaison de touches avec OnKey OU lancée directement par la boîte de dialogue "Macro".
 

Fichiers joints

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas