XL 2019 Copier une liste d'un tableau plusieurs fois

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

AlexiaC

XLDnaute Junior
Bonjour à tous!

Petite question, je débute en VBA et j'ai trouvé le code suivant sur internet mais il est malheureusement incomplet pour mon besoin.
Je cherche à copier les cellules F2:F9 de l'un de mes onglets le nombre de fois inscrit dans la cellule B2 de ce même onglet dans un autre onglet, à partir de la case A1.

Le code fonctionne, mais il ne copie qu'une seule fois les cellules F2:F9 et non 16 fois (le nombre inscrit en B2). Je pense qu'il en manque un morceau après .Range("A1") mais je ne suis pas assez calée pour savoir comment le compléter malgré de nombreuses recherches.

Est-ce que l'un d'entre vous pourrait m'aiguiller svp??

Un gros merci! 🙂

Sub COPIER_COLLER_PLS_FOIS()
Dim x As Integer
Dim Cpt As Integer
With Sheets("Liste")
x = .Range("B2").Value
.Range("F2:F9").Copy
End With
With Sheets("Feuil2")
For Cpt = 1 To x
.Paste Destination:=.Range("A1")
Next Cpt
End With
End Sub
 
Solution
Bonjour,

un essai à tester :

VB:
Sub COPIER_COLLER_PLS_FOIS()
Dim x As Integer, Plage As Range
With Sheets("Liste")
 x = .Range("B2").Value
 Set Plage = .Range("F2:F9")
End With

With Sheets("Feuil2")
 Plage.Copy .Range("A1").Resize(Plage.Rows.Count * x)
End With
End Sub

A+
Bonjour @AlexiaC

Tu ne dis pas ou il faut faire les copies successives, la 1ere se fait bien en A1 de la feuil2 mais les autres sans indication dans le code se copie les uns sur les autres toujours en A1 de la feuil2

Donc tu as 2 choix :
1) soit tu veux copier les uns à la suite des autres donc de A1 à A8 puis A9 à A16 puis A17 à A24 etc....

2)soit tu veux copier dans les feuilles 2 puis 3 puis 4 puis. 5 etc....

@Phil69970
 
Bonjour,

un essai à tester :

VB:
Sub COPIER_COLLER_PLS_FOIS()
Dim x As Integer, Plage As Range
With Sheets("Liste")
 x = .Range("B2").Value
 Set Plage = .Range("F2:F9")
End With

With Sheets("Feuil2")
 Plage.Copy .Range("A1").Resize(Plage.Rows.Count * x)
End With
End Sub

A+
 
Bonjour @AlexiaC

Tu ne dis pas ou il faut faire les copies successives, la 1ere se fait bien en A1 de la feuil2 mais les autres sans indication dans le code se copie les uns sur les autres toujours en A1 de la feuil2

Donc tu as 2 choix :
1) soit tu veux copier les uns à la suite des autres donc de A1 à A8 puis A9 à A16 puis A17 à A24 etc....

2)soit tu veux copier dans les feuilles 2 puis 3 puis 4 puis. 5 etc....

@Phil69970
Bonjour Phil69970,

En effet... mon erreur, merci de le souligner!! ce serait le choix no 1, il faudrait que la suite F2:F9 se copie 16 fois (pour l'instant, ce chiffre peut être appelé à changer, mais ça je suis capable de le faire moi-même 😉) les unes à la suite des autres dans la colonne A.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
252
Réponses
3
Affichages
539
Retour