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 ...
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
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 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.
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
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