Copier des colonnes à intervalle régulier

GregBov

XLDnaute Nouveau
Bonjour à tous,

Je suis nouveau sur ce forum et je vous remercie d'avance pour votre précieuse aide.

Je chercher à copier puis coller des colonnes à intervalle régulier. J'ai joint un fichier comme exemple. Je cherche à insérer, toutes les 11 colonnes (dans le fichier joint, dans la feuille "document de référence", insérer les colonnes ou le texte "insérer les colonnes ici" est surligné en jaune), environ 20 colonnes contenant des formules (dans la feuille "colonnes à copier") . Je suppose qu'il faut utiliser un macro mais je ne m'y connais malheureusement pas ...

J'espère avoir réussi à être clair.

Encore une fois merci pour votre aide.

Grégoire
 

Pièces jointes

  • Document test.xlsx
    583.3 KB · Affichages: 16

youky(BJ)

XLDnaute Barbatruc
Bonjour et Bienvenu sur XLD,
Voici une petite macro à mettre en Module1
La macro insère les colonnes donc à lancer d'une fois.
Enlève les apostrophes si tout fonctionne bien, cela accélèrera la macro
Bruno
VB:
Sub mycopie()
'application.EnableEvents=false'plus rapide
For k = 1 To 20
col = col + 11
Feuil2.Columns(col).Insert
Feuil2.Range(Feuil2.Cells(5, col), Feuil2.Cells(1000, col)).Value = _
Feuil1.Range(Feuil1.Cells(5, k), Feuil1.Cells(1000, k)).Value
Next
'Application.EnableEvents = True
End Sub
Edit: Adapter les Feuil1 et Feuil2 (voir en projet VBA) le vrai nom d'onglet
 

GregBov

XLDnaute Nouveau
Bonjour et Bienvenu sur XLD,
Voici une petite macro à mettre en Module1
La macro insère les colonnes donc à lancer d'une fois.
Enlève les apostrophes si tout fonctionne bien, cela accélèrera la macro
Bruno
VB:
Sub mycopie()
'application.EnableEvents=false'plus rapide
For k = 1 To 20
col = col + 11
Feuil2.Columns(col).Insert
Feuil2.Range(Feuil2.Cells(5, col), Feuil2.Cells(1000, col)).Value = _
Feuil1.Range(Feuil1.Cells(5, k), Feuil1.Cells(1000, k)).Value
Next
'Application.EnableEvents = True
End Sub

Je vous remercie grandement pour votre réponse, et merci pour la rapidité!

Je vais essayer ce code.

Cordialement,

Grégoire
 

GregBov

XLDnaute Nouveau
J'ai essayé de lancer votre macro.

Je me suis probablement mal fait comprendre car le résultat n'est pas celui souhaité. Je veux coller TOUTES les colonnes de la première feuille à un intervalle constant. Plus précisément, les 20 colonnes de la premières feuilles doivent être collées à la colonne L de la deuxième feuille, puis à la colonne X (11 colonnes plus loin), et ainsi de suite.

D'avance merci pour votre aide.

Grégoire
 

youky(BJ)

XLDnaute Barbatruc
Yes,
Essayes comme ceci
attention cela fait rajouter 80 colonnes . . .
Bruno
VB:
Sub mycopie()
'application.EnableEvents=false'plus rapide
For k = 41 To 11 Step -10
For b = 1 To 20
Feuil2.Columns(k).Insert
Next
bas = Feuil1.UsedRange.SpecialCells(xlCellTypeLastCell).Row
Feuil2.Range(Feuil2.Cells(5, k), Feuil2.Cells(bas, k + 19)).Value = _
Feuil1.Range(Feuil1.Cells(5, 1), Feuil1.Cells(bas, 20)).Value
Next
'Application.EnableEvents = True
End Sub
 

GregBov

XLDnaute Nouveau
Yes,
Essayes comme ceci
attention cela fait rajouter 80 colonnes . . .
Bruno
VB:
Sub mycopie()
'application.EnableEvents=false'plus rapide
For k = 41 To 11 Step -10
For b = 1 To 20
Feuil2.Columns(k).Insert
Next
bas = Feuil1.UsedRange.SpecialCells(xlCellTypeLastCell).Row
Feuil2.Range(Feuil2.Cells(5, k), Feuil2.Cells(bas, k + 19)).Value = _
Feuil1.Range(Feuil1.Cells(5, 1), Feuil1.Cells(bas, 20)).Value
Next
'Application.EnableEvents = True
End Sub
Ce code fonctionne parfaitement, merci !
 

Discussions similaires

Réponses
7
Affichages
291
Réponses
3
Affichages
147

Statistiques des forums

Discussions
312 038
Messages
2 084 820
Membres
102 679
dernier inscrit
Brice007lc