Macro pour insérer des lignes copiées

Bonjour je bloque sur quelque chose de simple à priori ... alors je reviens vous voir car je sais que vous êtes tjrs très efficaces :

Dans le fichier joint attaché, il y a un tableau vierge que je dois dupliquer au fur et à mesure de nouvelles opérations enregistrée. J'aimerai que le dernier tableau dupliqué apparaisse en dessous de tous les autres, afin de respecter l'ordre d'enregistrement.

Actuellement, chaque fois que je créée un nouveau tableau, celui-ci vient s'insérer sous le premier existant et non sous le dernier comme je le souhaite...

ToM

70stormrider.xlsm (15.08 Ko)

Bonjour,

On copie le tableau dans la Feuil2, à la suite

vois si çà te va

Sub CopieTableau()
Dim Lg%
    With Sheets("Feuil2")
        Lg = .Range("L65536").End(xlUp)(2).Row + 1
        Range("Tablo").Copy Destination:=.Range("b" & Lg)
        Application.CutCopyMode = False
        .Activate
    End With
End Sub

Amicalement

Claude

édit: le tableau est nommé "Tablo"

71rider-copie.xlsm (22.05 Ko)

bonjour,

désolé, après avoir essayé d'adapter ta solution à mon vrai document de travail, ça ne va pas car le tableau doit venir s'insérer au dessus d'un autre (très compliqué à expliquer, voyez plutôt le nouvel exemple en fichier joint).

Ce que je veux faire donc, c'est exactement la macro que j'ai faite dans le nouveau classeur joint, sauf qu'il me faut trouver un moyen pour que à chaque fois que je duplique mon tableau il se rajoute en dessous de tous les autres et non pas en dessous du premier. Il faudrait que la ligne d'insertion dans le code puisse "bouger"

Merci, à bientôt

48rider-copie.xlsm (34.79 Ko)

Bonjour,

C'est quoi ce tableau vert ?

il faudrait peut-être le placer en haut de l'écran,

les autres venant s'ajouter à la suite.

Sub copie_tableau()
Dim Lg%
    Lg = Range("L65536").End(xlUp)(2).Row + 2
    Application.CutCopyMode = False
    Sheets("Donnnées vierges").Rows("3:21").Copy
    Sheets("Feuil1").Rows(Lg).Insert Shift:=xlDown
    Application.CutCopyMode = False
    Application.Goto Range("a1"), Scroll:=True
End Sub

à voir

Claude

50rider-copie-2.xlsm (41.74 Ko)

Re,

Dans le tableau vert, je dois faire la somme par colonne de toutes mes opérations. C'est important qu'il apparaisse en dessous. C'est dommage, on y est presque

La question serait de savoir si l'on peut mettre un critère sur la ligne d'insertion, afin que celle ci ne soit pas "fixée" mais qu'elle change à chaque fois... Pas facile

ToM

re,

Ok, compris,

Sub copie_tableau()
Dim Lg%
    Lg = Range("L65536").End(xlUp)(2).Row
    Application.CutCopyMode = False
    Sheets("Donnnées vierges").Rows("3:21").Copy
    Sheets("Feuil1").Rows(Lg - 21).Insert Shift:=xlDown
    Application.CutCopyMode = False
    Application.Goto Range("a1"), Scroll:=True
End Sub

Claude

93rider-copie-3.xlsm (32.41 Ko)

BiiinGO !

Vraiment merci beaucoup Dubois (je dis souvent merci sur ce forum), tu m'a vraiment beaucoup aidé !

à bientôt

Pas toujours facile d'expliquer et de se comprendre !

N'oublie pas la petite formalité du résolu

à+... Claude

Bonjour Claude,

Peux tu me préciser quelle est la partie du code qui a permi d'arriver à la solution ? J'aimerai pouvoir le reproduire pour une situation semblable mais en colonne cette fois-ci

Dans mon nouveau cas (cf. pièce jointe) j'ai deux tableaux extensibles à souhait en fonction des enregistrements à rentrer : à chaque fois qu'un nouvel enregistrement se présente, j'ai besoin d'une macro créant une nouvelle colonne.

La macro que j'ai créé pour mon tableau 1 marche très bien car la colonne d'insertion reste la même; par contre pour mon tableau 2, la colonne d'insertion est à chaque fois décalée du fait de l'insertion de nouvelles colonne dans le tableau 1.

D'où le même pbm : comment mettre un critère sur la colonne d'insertion, afin que celle ci ne soit pas "fixée" mais qu'elle change à chaque fois ?

voici ce à quoi je suis arrivé en essayant de comprendre ton code mais ça ne marche pas :

Macro1 Macro

Dim Lg%

Lg = Range("L65536").End(xlToLeft)(2).Columns

Application.CutCopyMode = False

Sheets("Donnnées vierges").Columns("D").Copy

Sheets("Feuil1").Columns(Lg - 21).Insert Shift:=xlToRight

Application.CutCopyMode = False

Application.Goto Range("D6"), Scroll:=True

End Sub

Merci pour ta disponibilité

ToM

67rider-copie.xlsm (25.13 Ko)

Bonjour,

Pour un meilleur suivi, tu aurais du ouvrir un nouveau poste

ici, on ne modifie que la "Feuil1", l'autre servant uniquement de modèle, c'est bien çà ?

à te relire

Claude

Re,

Oui c'est bien ça : "donnée vierge" sert à copier les colonnes vides vers "Feuil1"

re,

Ici j'ai nommé "Top", la cellule qui sépare les 2 tableaux de la "Feuil1" (au départ "H1")

c'est un simple repère pour le tableau 2.

Sub InsertCol_Tab1()
Dim cL%
    With Sheets("Feuil1")
        Application.CutCopyMode = False
        Sheets("données vierges").Columns("d").Copy
        .Columns("e").Insert Shift:=xlToRight
        Application.CutCopyMode = False
        Application.Goto .Range("a1"), Scroll:=True
    End With
End Sub
Sub InsertCol_Tab2()
Dim cL%
    With Sheets("Feuil1")
        cL = .Cells.Find("*", , , , xlByColumns, xlPrevious).Column
        Application.CutCopyMode = False
        Sheets("données vierges").Columns("k").Copy
        .Columns(cL - 3).Insert Shift:=xlToRight
        Application.CutCopyMode = False
        Application.Goto .Range("Top"), Scroll:=True
    End With
End Sub

Bonne journée

Claude

114rider-copiecol.xlsm (25.26 Ko)

Salut,

Impeccable ! Je commence à comprendre les correspondances des codes

Merci pour la solidarité, je suis stagiaire en évaluation de politique publique et grâce à ton aide et au forum je vais pouvoir proposer un outil de travail bien au dessus de ce que j'aurai pu faire tout seul ! C'est génial de votre part !

Amicalement,

ToM

Rechercher des sujets similaires à "macro inserer lignes copiees"