tabalution sur feuille

  • Initiateur de la discussion stargate
  • Date de début
S

stargate

Guest
Bonjour,

Est-il possible de changer l'ordre de tabulation des cellules


Normalement si la cellule active est A1 et qu'on appuie sur la touche tab on va en B1

je voudrais par exemple lors d'une confection d'un bon de commande, que l'utilisateur aille directement dans les cellules à remplir



par exemple de F8 à J8,puis F9 puis J9 etc...

Merci
 
S

Stargate

Guest
merci pour ton aide

mais petit problème


Au chargement de la feuille

Private Sub Worksheet_Activate()
Range('F8').Select
End Sub

puis

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = Range('F8').Address Then
Target.Offset(0, 4).Activate
ElseIf Target.Address = Range('J8').Address Then
Target.Offset(1, -4).Activate
ElseIf Target.Offset(1, 0) Then
End If
End Sub


Je te donne l'ordre des cellules à remplir

F8,J8,F9,J9,K13,K14,K15.......K127

Merci
 

Dan

XLDnaute Barbatruc
Re,

Voilà :

Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = Range('F8').Address Then
Target.Offset(0, 4).Activate
ElseIf Target.Address = Range('J8').Address Then
Target.Offset(1, -4).Activate
ElseIf Target.Address = Range('F9').Address Then
Target.Offset(0, 4).Activate
ElseIf Target.Address = Range('J9').Address Then
Target.Offset(4, 1).Activate
ElseIf Target.Offset(1, 0) Then
End If
End Sub

Maintenant il faut voir ce que tu veux faire lorsque tu arrives à K127.

Si pb n'hésite pas.

;)

Edition : Juste pour saluer mon ami Didier_mdF

Message édité par: Dan, à: 02/04/2006 20:48
 

Dan

XLDnaute Barbatruc
Bonsoir,

1. Pour le retour de K37 vers F8, modifie ta macro comme suit :

Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = Range('F8').Address Then
Target.Offset(0, 4).Activate
ElseIf Target.Address = Range('J8').Address Then
Target.Offset(1, -4).Activate
ElseIf Target.Address = Range('F9').Address Then
Target.Offset(0, 4).Activate
ElseIf Target.Address = Range('J9').Address Then
Target.Offset(4, 1).Activate
ElseIf Target.Address = Range('K137').Address Then
Target.Offset(-129, -5).Activate
ElseIf Target.Offset(1, 0) Then
End If
End Sub

Le code est à placer ici
- Vas en VBA par ALT + F11
- CTRL + R pour afficher VBA project
- double clique sur la feuille où tu dois encoder tes données
- Place le code dans la fenêtre de droite et enregistre ton fichier.

2. Bien sur que le code est testé.
de ton coté vérifie bien que la configuration excel accepte les macros. Pour ce faire, va dans menu / outils / macro /sécurité et là vérifie que le niveau est au moins sur moyen.

Pour l'utilisation, encode un chiffre en F8 puis ENTREE. et ainsi de suite.

;)
 

Discussions similaires

Réponses
0
Affichages
613

Statistiques des forums

Discussions
312 305
Messages
2 087 088
Membres
103 461
dernier inscrit
dams94