Gestion tabulation avec VBA

Bonjour à tous,

J'aurais besoin de gérer les tabulations avec un petite macro que j'ai créé.

En gros, c'est un simple fichier qui est rempli à la main.

Mais parfois, pour aller plus vite, il y a juste besoin de copier les valeurs de la dernière ligne écrite. J'ai donc créé une petite macro qui copie les valeurs de la ligne du dessus (sur les 2 premières colonnes et qui écris "Espèces" en 3ème colonne) et reste plus qu'à remplir la 4ème colonne.

Voici la macro :

Sub copieEspeces()
    dernLigne = Range("A" & Rows.Count).End(xlUp).Row
    Range("A" & dernLigne + 1).Value = Range("A" & dernLigne)
    Range("B" & dernLigne + 1).Value = Range("B" & dernLigne)
    Range("C" & dernLigne + 1).Value = "Espèces"
    Range("D" & dernLigne + 1).Select
End Sub
    

Ce que j'aimerais, c'est que lorsque la valeur est indiqué en colonne D, que l'entrée permette d'aller directement en colonne A de la ligne suivante.

Ou autrement dit, que la macro indique le même comportement que lorsque l'on appuie sur TAB en remplissant un fichier et que l'on retombe sur la première colonne lorsque l'on fait entrer.

Ok je chipottes mais j'adore gagner un max de temps, surtout sur des tâches de remplissage de ce type-là...

Est-ce possible ?

Merci pour vos réponses.

Bonjour

Si j'ai bien compris

La dernière ligne de ton code tu la remplaces par

 Range("A" & dernLigne + 2).Select
Crdlt

J'ai mal expliqué alors... 🤣

C'est volontaire que la macro me positionne ensuite en D pour que je puisse écrire la valeur qui m'intéresse.

Ce que j'aimerais c'est après indiqué ma valeur et avoir appuyé sur entrer, que je retombe en A.

Comme quand on pars de A on fait TAB pour changer de colonne après avoir noté les infos que l'on souhaitait dans les différentes cellules, et quand on fait entrer, on retourne en A dans la ligne suivante. (J'espère que c'est un peu plus clair...)

Bonsoir Bl4ol, Joco7915 et le forum
Copiez le code suivant dans la feuil1

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim dl 'derligne ligne vide en colonne D
        dl = Range("D" & Rows.Count).End(xlUp).Row
            If Not Application.Intersect(Target, Range("D" & dl)) Is Nothing Then
                Range("A" & dl + 1).Select
            End If
End Sub

Cdt
Papy Henri

Salut,

Heu, un Tableau Structuré gère très bien cela non ?

Bonjour BI4ol et @ Jean-Paul qui donne la meilleure solution.
Cdt
Papy Henri

19bi4ol.xlsm (16.83 Ko)

Merci à tous pour vos réponses qui m'ont beaucoup aidé.

Malheureusement la solution de @Jean-Paul ne fonctionne pas car le tableau ne s'arrête pas à la colonne D mais un peu plus loin... Mais je ne l'avais pas dit...

Et j'avoue, je déteste les tableaux proposés par Excel (un jour peut-être, j'y passerais... )

Donc, j'ai indiqué la réponse de @AFEH comme la meilleure dans ma situation.

Des bisoux

Bonjour à tous,
C'est dommage de "détester" les Tableaux Structurés, car leur utilisation facilite nettement le travail.
Merci pour votre réponse.
Cdt
Papy Henri

Tu as raison...

Un jour je me pencherais sur le sujet et peut-être sue ça me plaira.

Rechercher des sujets similaires à "gestion tabulation vba"