Forcer la validation entré à rester dans la cellule active

Salut tout le monde , par défaut quand on appuie sur ENTRÉE la prochaine cellule sélectionnée est celle du dessous, y a t'il un code pour forcer à rester sur la la cellule qui vient d'être validée)

J'ai trouvé un code en mode événementielle mais malheureusement il y a 2 éventements (un change et un sélection change) et donc le 2eme code ne marche pas lorsque je valide avec ENTRÉE

le code :

Private Sub Worksheet_Change(ByVal Target As Range)
'reste sur la cellule active 
    If Not Application.Intersect(Target, Range("A1:A2:A3")) Is Nothing Then
                Dim ligne As Integer
                ligne = Target.Row
                Cells([ligne], [1]).Select
    End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'indique la ligne de la cellule selectionnée
    If Not Application.Intersect(Target, Range("A1:A2:A3")) Is Nothing Then
                Dim ligne As integer
                ligne = Target.Row
                Range("C2").Value = ligne
    End If
End Sub

Le classeur pour exemple :

Je ne sais pas comment imbriquer ces 2 codes et je me suis dit qu'il y a peut être un code qui permet tout simplement faire cette validation en restant sur la cellule active (excel est plein de surprise)

Je souhaite bien sur que ça se passe uniquement sur les cellules A1 et A2

Merci par avance !

edit : petite erreur dans mon classeur exemple (le code implique la cellule A3) mais ce n'est pas bien grave

JIDE

Bonsoir le forum,

Sans VBA ?

Bouton Office : Options Excel : Options avancées : décocher : "Déplacer la sélection après validation"

mbbp

Merci pour ta réponse mais je souhaite justement du vba car cela impliquera plusieurs classeurs sur plusieurs pc et utilisateurs et je ne veux que ça se passe uniquement sur une plage bien spécifique

Bonjour,

qq chose doit m'échapper...

il y a 2 éventements (un change et un sélection change) et donc le 2eme code ne marche pas lorsque je valide avec ENTRÉE

Si tu veux rester dans la même cellule pourquoi veux-tu un événement selection change puisque justement la sélection ne change pas ???

D'autant plus si c'est pour afficher le n° de ligne qui ne change pas non plus...

Explique ce que tu veux faire avec des mots parce que là...

Sinon la proposition de mbbp en vba :

Application.MoveAfterReturn = True

Application.MoveAfterReturn = False

eric

Eric ce que je voulais est le code pour pour que la validation "entrée" force à rester dans la cellule active

Ton code est exactement ce que je cherchais

Pour expliquer la suite est que voulais rentrer ce code dans une macro événementielle mais mon problème est que j'avais 2 codes :

le 1er code (SelectionChange) me permettait de voir la position de la cellule active

le 2eme code (change) pour justement que la cellule validée reste active

Ces 2 codes fonctionnent mais pas ensembles car tout 2 différents (SelectionChange et change)

Le tout dans une plage définit

Je sais pas si je suis clair mais j'ai estimé qu'il valait mieux que j'explique le contexte pour ma demande

Bref tu m'as donné la solution, ce qui donne pour mon code :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Application.MoveAfterReturn = True 

    If Not Application.Intersect(Target, Range("A1:A2:A3")) Is Nothing Then

Application.MoveAfterReturn = False

                Dim ligne As String
                ligne = Target.Row
                Range("C2").Value = ligne

    End If

End Sub

Merci !!!

Rechercher des sujets similaires à "forcer validation entre rester active"