Saisie en ligne puis en colonnes

Bonjour à tous.

Je dois saisir dans un tableau trois valeurs (N° de cde, nom puis heure)

Les valeurs suivantes dans la même ligne s’obtiennent par des recherchev et autres, donc pas besoin d'y aller.

La saisie s'effectue donc de gauche à droite pour 3 cellules (A2;B2;C2) puis on descend d'une ligne (A3;B3;C3)...

J'ai trouvé une macro qui fait dans l'autre sens mais je n'arrive pas à l'adapter pour mon cas !

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Application.EnableEvents = False

If Target.Column = 3 Then Cells(1, Target.Row + 1).Select

Application.EnableEvents = True

End Sub

Merci pour votre aide !

Bonjour,

Pour ne pas réinventer la roue, si tu encodes en A2, que tu appuies sur la touche Tabulation, idem après l'encodage en B2 et la touche Enter pour valider la saisie en C2, tu te positionneras automatiquement en A3?

Si tu protèges la feuille (en ayant déverrouillé les cellules des 3 premières colonnes) et en n'autorisant pas la sélection des cellules verrouillées, tu devrais obtenir le même effet, me semble-t-il!?

Bonjour,

Merci pour ta réponse, mais je ne peux pas protéger les autres cellules, et j'aimerais n'utiliser que la touche "Enter"

Je sais, je suis difficile !

Bonjour,

Ci-dessous une macro adaptée d' eriiic ...

Private Sub Worksheet_Change(ByVal Target As Range)
' Ajuster la plage A2:C20 à la situation '''''''''''''''''''''''''''''
    If Not Intersect(Target, [A2:C20]) Is Nothing Then
        [A2:C20].Cells((Target.Row - 2) * 3 + Target.Column + 1).Select
   End If
End Sub

En espèrant que cela t'aide ...

Bonjour,

ci-jointe autre proposition

code ThisWorkbook

Private Sub Workbook_Open()
    Application.OnKey "{RETURN}", "ThisWorkbook.Touche_Entrée"      'touche Entrée
     Application.OnKey "{ENTER}", "ThisWorkbook.Touche_Entrée"       'touche Entrée Pavé numérique
End Sub

Sub Touche_Entrée()
    ActiveCell.Offset(, 1).Select
End Sub

code Feuille

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.EnableEvents = False
        If Target.Column = 4 Then Cells(Target.Row + 1, 1).Select
    Application.EnableEvents = True
End Sub

Merci à James et Thev !

J'ai essayé le code de James qui fonctionne à merveille !

Mais je vais regarder aussi celui de Thev !

Encore merci pour votre réactivité !

J'ai encore beaucoup de travail pour apprendre le langage VBA !

@ Thev ...

Tu seras d'accord avec moi qu'il faut faire très attention avec Application.OnKey ...

et qu'il faut systématiquement coder le Reset .... ... pour s'éviter de possibles gros ennuis ...


@ fredexcel

Merci pour tes remerciements ... ... qui vont directement à eriiic ...

James007 a écrit :

Tu seras d'accord avec moi qu'il faut faire très attention avec Application.OnKey ...

De façon, générale, certainement.

Pour ce cas précis, changer le comportement par défaut de la touche Entrée (sélection de la cellule juste en dessous) par celui programmé (sélection de la cellule juste à droite) ne me parait pas présenter de risque particulier.

thev a écrit :

...changer le comportement par défaut de la touche Entrée...... ne me parait pas présenter de risque particulier.

Si ce n'est qu'au moindre changement de feuille ou de fichier ... l'utilisateur,sans doute dérouté, ... ne retrouvera pas le comportement habituel de sa touche Entrée ....

James007 a écrit :

... l'utilisateur,sans doute dérouté

On pourrait évidemment restreindre l'utilisation de ce comportement spécifique de la touche Entrée à la feuille ou au tableau où s'effectue la saisie mais je pense que l'utilisateur sera moins dérouté si ce comportement reste généralisé au classeur considéré.

Après tout, c'est au demandeur d'en juger en fonction de l'usage qu'il veut faire de ce classeur.

thev a écrit :

On pourrait évidemment restreindre l'utilisation de ce comportement spécifique de la touche Entrée à la feuille ou au tableau où s'effectue la saisie mais je pense que l'utilisateur sera moins dérouté si ce comportement reste généralisé au classeur considéré.

Après tout, c'est au demandeur d'en juger en fonction de l'usage qu'il veut faire de ce classeur.

Il ne reste plus qu'à ajouter ces lignes de code ...

Rechercher des sujets similaires à "saisie ligne puis colonnes"