Copier plusieurs colonnes après la dernière colonne utilisée

Bonjour à tous,

Après pas mal de temps de recherche je n'arrive toujours pas à trouver ma solution qui sera très certainement simple pour certains d'entre vous mais désolée je suis apparemment loin d'avoir toutes les bases. j'ai tenté de bricoler plusieurs codes mais rien n'y fait. je vous joins un fichier pour illustrer ce que je souhaiterai.

Voilà mon problème :

J'ai besoin de copier plusieurs colonnes après la dernière colonne utilisée + 2, du même onglet.

Je me doute que pour vous il n'y a pas d'utilité à faire ça, mais moi ça me permettrait d'avoir un suivi de facturation de mes sous-traitants

En l'occurrence, j'ai besoin de copier les colonnes de A à L (ça ça ne change pas, c'est ma base)

Ensuite pour le collage : si la dernière colonne utilisée est la P alors je souhaiterai coller les données sur les colonnes R à AC

Ainsi lorsque j'aurai une autre facture, je modifie mes données sur les colonnes A à L que je souhaiterais par la suite coller sur les colonnes AE à AP. Et ainsi de suite....

Si vous pouvez m'aider ou me donner une direction vers laquelle aller... Merciii

Bonjour à tous!

Sandra0305, comme ceci peut-être

Sub copie_Colonnes()
dercol = Cells(1, Columns.Count).End(xlToLeft).Column
Dim xrg As Range
Set xrg = Columns("A:L")
xrg.Copy Destination:=Cells(1, dercol).Offset(0, 2)
End Sub

Bonne journée!

Bonjour,

Comme ça ?

Sub COPIE()
Dim LR%, LC%
With Worksheets("voila ce que je souhaite")
    LR = .Cells(Rows.Count, 1).End(xlUp).Row
    LC = .Cells(2, Columns.Count).End(xlToLeft).Column
    Range(.Cells(1, 1), .Cells(LR, 12)).Copy (.Cells(1, LC + 2))
End With
End Sub

Par contre pas certain que ce soit la façon la plus "pratique" de gérer ses factures (je trouve ça plus simple d'avoir un fichier distinct à chaque fois) mais ça vous verrez à l'usage.

Ergotamine.

Merci pour vos retours, cependant j'ai quelques soucis

Nordik_Nation, la sélection est ok mais ça me copie les cellules sur la 2ème colonne, j'ai tenté de mettre 15

xrg.Copy Destination:=Cells(1, dercol).Offset(0, 15)

pour mettre à la 15ème colonne (ça ok) mais je souhaite qu'à chaque copie le tableau copié soit séparé d'une colonne vide

Ergotamine, le code fonctionne sur le tableau que j'ai crée mais pas dans mon fichier. J'avais volontairement fusionné des cellules puisque dans mon fichier j'en ai. Mais là ça me met "erreur 1004: cette action ne peut pas être appliquée à une cellule fusionnée"

De plus pour tous vous dire, je dois faire un suivi d'une 20aine de sous-traitants ou fournisseurs par chantier raison pour laquelle je dois garder qu'un seul fichier par chantier avec un onglet par sous-traitant ou fournisseur. Du coup est-ce qu'on peut modifier le code pour que la macro fonctionne sur la feuille active ?

Je vous joins un bout de mon fichier.

Merci encore

Bonsoir à tous!

Sandra0305, normal que le code copie dans la colonne B les cellules sont vides ce n'est pas le fichier que tu as fourni au départ...ce n'est pas les colonnes que tu veux copier mais une zone déterminée soit ("A82:L145")

Sub copie_Colonnes_2()
dercol = Cells(82, Columns.Count).End(xlToLeft).Column
Dim xrg As Range
Set xrg = Range("A82:L145")
xrg.Copy Destination:=Cells(82, dercol).Offset(0, 2)
End Sub

Bonne soirée !

Bonsoir

Nordik_Nation, ça marche ! J'avais bien besoin de copier mes données à partir de la 1ère ligne car il y a des liaisons avec le tableau "certificat de paiement". En fait j'avais pas compris la logique d'excel, du coup j'ai repris ta 1ère macro et j'ai mis 1 dans la cellule O1 (afin que la colonne O ne soit pas écrasée lors de la copie) et comme par magie ça fonctionne !

Mille mercis ça va m'économiser un max de temps, reste plus qu'à continuer la macro afin d'en gagner encore plus ...

Bonne soirée !

Rechercher des sujets similaires à "copier colonnes derniere colonne utilisee"