XL pour MAC Cellules sélectionnées automatiquement après avoir choisi un élément dans une liste de choix

Valter

XLDnaute Occasionnel
Bonjour le forum,

Comme dit dans le titre, je me demande s' il est possible de sélectionner automatiquement la cellule suivante après avoir choisi un élément dans une liste de choix, ceci pour faciliter las saisie .... je joins un petit fichier d'exemple

Merci ....
 

Pièces jointes

  • FichierExemple.xlsx
    10.1 KB · Affichages: 7

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Valter,
Avec une petite procédure VBA :
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    ValA = Target.Address
    If ValA = "$E$6" Then Range("$G$6").Select
    If ValA = "$G$6" Then Range("$I$6").Select
End Sub
Par contre il vous faut autoriser les macros.
 

Pièces jointes

  • FichierExemple.xlsm
    14.3 KB · Affichages: 6

job75

XLDnaute Barbatruc
Bonsoir Valter, sylvanu,

A placer dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [E6,G6]) Is Nothing Or Target(1) = "" Then Exit Sub
On Error Resume Next
[E6,G6,I6].Find("", [I6], xlValues).Select
End Sub
A+
 

Pièces jointes

  • FichierExemple(1).xlsm
    15.9 KB · Affichages: 1

Valter

XLDnaute Occasionnel
Merci job75 et sylvanou, cela fonctionne parfaitement, mais une chose que je n'ai pas pensé de dire de suite est que il faut que cela fonctionne sur une centaine de lignes, en faisant recopier vers le bas, cela ne fonctionne plus... comment modifier le code pour que cela fonctionne sur une centaine de lignes ?
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Valter, Job,
La ça marche sur toutes cellules des colonnes E G I
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Column = 5 Then Cells(Target.Row, 2 + Target.Column).Select
    If Target.Column = 7 Then Cells(Target.Row, 2 + Target.Column).Select
End Sub
 

Pièces jointes

  • FichierExemple 2.xlsm
    17.5 KB · Affichages: 5

job75

XLDnaute Barbatruc
Même méthode qu'au post #3, fichier (2) et la macro :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target(1), [E6:E1000,G6:G1000]) Is Nothing Or Target(1) = "" Then Exit Sub
On Error Resume Next
Intersect(Target(1).EntireRow, [E6:E1000,G6:G1000,I6:I1000]).Find("", Intersect(Target(1).EntireRow, [I6:I1000]), xlValues).Select
End Sub
Adaptez la dernière ligne 1000.
 

Pièces jointes

  • FichierExemple(2).xlsm
    26.6 KB · Affichages: 5

Discussions similaires