Probleme de code VBA ajout d'une ligne en dessous

Bonjour à vous,

je rencontre un problème avec une macro (faite avec "enregistrer une macro").

Lorsque j'active ma macro "enregistrer", la ligne ajoutée dans le 2ème onglet se met en dessus et non en-dessous .

Explication plus précise :

Après avoir fait une première fois ma macro (A), je veux enregistrer des nouvelles données (B) et lorsque j'active une 2ème fois ma macro, dans le 2ème onglet B se met au-dessus de A et je voudrais que B se place en dessous de A.

en pj, mon ébauche.

D'avance Merci de votre aide et de vos explications.

Cordialement

elsouba

16testmacro3.xlsm (28.87 Ko)

Bonjour

Pas facile de comprendre là...

On copie les cellule G4 à G11 vers où dans la feuille Liste ? --> Vers BQ ??

A vous relire

Crdlt

EDIT --> Cela aurait été bien d'avoir aussi des titres en feuille liste

Bonjour Dan,

Effectivement mon code n'est pas des plus explicite.

ma première difficulté a été de trouver la possibilité de faire à l'aide de la macro un copier horizontal pour un coller vertical.

Ma macro fonctionne bien (malgré un code lourd que vous pouvez je suppose largement améliorer) mais je désire apprendre et ma question est plus celle-ci (sans vouloir vous offenser) :

l'action de ma macro enregistre les informations de l'onglet 1 sur l'onglet 2 les unes sur les autres :

j'aurais voulu que lors de la première action macro "enregistre", les données s'enregistrent dans l'onglet liste inter en ligne 3 : ok

nouvel enregistrement, et j'aurais voulu que ma ligne s'enregistre en ligne 4 dans le 2ème onglet or la macro crée une nouvelle ligne en 3 , enregistre les données en 3 et les données enregistrées précédemment sont en ligne 4.

A votre dispo pour plus d'info.

Mais merci de votre temps

cordialement

fichier joint avec 3 exemples de ce qu'il se passe

21testmacro3.xlsm (31.94 Ko)

Re,

Essaie comme ceci :

Sub enr()
Dim dlg As Integer
' Touche de raccourci du clavier: Ctrl+e

dlg = Sheets("Liste inter").Range("A" & Sheets("Liste inter").Rows.Count).End(xlUp).Row
If dlg = 2 Then dlg = 3 Else dlg = dlg + 1
With Sheets("Nouveau")
    .Range("B4:B6").Copy
    Sheets("Liste inter").Range("A" & dlg).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
    .Range("G4:G11").Copy
    Sheets("Liste inter").Range("BQ" & dlg).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
    .Range("C18:C64").Copy
    Sheets("Liste inter").Range("V" & dlg).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
    .Range("G17:G22").Copy
    Sheets("Liste inter").Range("M" & dlg).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
    .Range("B15:B16").Copy
    Sheets("liste inter").Range("K" & dlg).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
    .Range("B13").Copy
    Sheets("liste inter").Range("J" & dlg).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
    .Range("B10:B11").Copy
    Sheets("liste inter").Range("G" & dlg).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
End With
Application.CutCopyMode = False
End Sub

Si ok, clique sur le V vert à coté du bouton EDITER pour clôturer le fil lors de ta réponse

Cordialement

Bonjour Dan,

Merci beaucoup, cela fonctionne très bien.

Je suis en train de regarder le code et de le comparer avec ce que j'avais fait pour comprendre.

J'aurais peut être besoin d’éclaircissement si je peux abuser de ton temps (si cela ne te dérange pas).

en tout cas , merci encore.

cordialement

Re

J'aurais peut être besoin d’éclaircissement si je peux abuser de ton temps (si cela ne te dérange pas).

Pas de souci.

Crdlt

Rechercher des sujets similaires à "probleme code vba ajout ligne dessous"