Forum Clubic

Excel - Choisir un focus auto sur cellule

Bonjour,

J’aimerais faire en sorte que lorsque j’ouvre mon fichier excel, la cellule selectionné est la cellule B8.
Je veux ensuite la remplir puis, quand je clic sur “Enter” pour valider mon texte, c’est la cellule C5 qui ce selectionne.
Une fois remplis et validé par “Entrer”, ce sera alors la cellule D7 qui sera selectionnée (et ainsi de suite).

Quelqu’un aurai une solution ? Je pense qu’en Macro c’est faisable mais sans certitude.

Merci !

oui c’est faisable avec Macro, mais je ne sais pas (plus) comment faire :confused:

Si tu n’as pas de trop de cas à traiter, tu peux faire directement par macro.
Ca va te donner quelque chose du genre :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
        Range("B7").Select
    ElseIf Target.Address = "$B$7" Then
        Range("C8").Select
    ElseIf Target.Address = "$C$8" Then
        Range("D9").Select
....
    Else
        Range("A1").Select
    End If
End Sub

Si tu en as beaucoup, il est plus intéressant de passer par une table intermédiaire, soit dans le code, soit dans une feuille excel annexe

Merci gcc ta méthode fonctionne bien sauf pour un petit détails. Si je ne vais pas dans la cellule pour l’editer et donc que je n’ai que la sélection dessus, le code ne ce lance pas.

Je m’explique : on commence avec la cellule A1 de sélectionné, si on a rien à mettre dans cette cellule, on clic donc sur entré mais comme ne ne somme pas “entré” dans la cellule pour la modifier, le code ne ce lance pas.

Si tu veux une action à la perte du focus, ce n’est plus l’évènement Change() qu’il faut utiliser, c’est Selectionchange()
Message edité le 26/04/2012 à 15:47

Pour ce code :

Private Sub Worksheet_Selectionchange(ByVal Target As Range)
If Target.Address = "$A$1" Then
    Range("B7").Select
  ElseIf Target.Address = "$B$7" Then
    Range("C8").Select
  ElseIf Target.Address = "$C$8" Then
    Range("D9").Select

  Else
    Range("A1").Select
  End If
End Sub

1ère problème : Quand j’ouvre mon fichier je suis directement sur D9.
2ème problème : Si je valide une case, par exemple B7 la sélection va directement à D9 quelle que soit la case. En faite il passe dans tout le code à chaque fois que la case change même automatiquement donc forcement il va jusqu’à la fin du code qui le met à la dernière case. Je vais voir si je trouve une solution pour éviter ça mais on s’approche du but voulu !

Je pense qu’il faut rajouter des conditions ou quelque chose pour qu’il ne tourne pas dans toutes les boucles


Je précise bien ce que j'aimerais avoir en utilisation :

Si j’ouvre le fichier je suis sur A1.
Si je clic sur entrée, que j’ai modifié ou pas A1, je me retrouve sur B7.
Si je clic sur entrée, que j’ai modifié ou pas B7, je me retrouve sur C8.
Si je clic sur entrée, que j’ai modifié ou pas C8, je me retrouve sur D9.
Si je clic sur entrée, que j’ai modifié ou pas D9, je me retrouve sur A1.

Tout ceci pour accélérer le remplissage des tableaux.

Sinon on peut détourner un peu le problème en laissant change mais en mettant, a la place de Range(“B7”).Select, quelque chose qui rentre directement dans la cellule (Avec le petit trait de sélection) et qui ne fait pas que la sélectionner (l’encadrer). Tu vois ce que je veux dire ?

Bonjour,

Tu peux essayer ceci dans ThisWorkbook :


Private Sub Workbook_Open()
    Range("A1").Select
End Sub

Tu peux essayer ceci dans ta feuille :


Sub Worksheet_SelectionChange(ByVal Target As Range)
    Select Case Target.Address
    Case "$A$1", "$B$7", "$C$8", "$D$9"
        ActiveCell.Select
    Case "$A$2"
        Range("B7").Select
    Case "$B$8"
        Range("C8").Select
    Case "$C$9"
        Range("D9").Select
    Case Else
        Range("A1").Select
    End Select
End Sub

Edité le 23/04/2012 à 18:12

PERFECT Jacky67 :super:. Ça fonctionne très bien ! J’essaye dans différents cas d’utilisations et je confirme le fonctionnement.

Merci à toi et aussi à gcc !! :smiley:

J’ai enfin pu tester et ça fonctionne parfaitement !! Merci !

Ce message n’était pas conforme aux règles d’utilisation du nouveau forum :

:wink: