Copier coller une zone

Fermé
suli1870 Messages postés 4 Date d'inscription jeudi 28 mars 2019 Statut Membre Dernière intervention 4 mai 2019 - 4 mai 2019 à 12:25
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 7 mai 2019 à 17:15
Bonjour communauté, 
Je rencontre un problème dans l'élaboration d'un classeur excell.
Pour un projet j'aurais besoin d'une macro qui exécute un ensemble d'actions.  En résumé,  je dois copier coller un certain nombre de fois une zone d'une feuille 1 à une autre feuille 2et imprimer la feuille 2

- La zone a copier se situe sur ma feuille nommée FEUILLEX dans mon classeur et comprend les cellules A1 à C9

- Le nombre de fois que cette zone doit être copiée se trouve également sur ma feuille nommée FEUILLEX en cellule A20 indiquée par un chiffre.

- Cette zone doit donc être copiée collée sur une autre feuille du même classeur nommée FEUILLEY et autant de fois que la cellule A20 de la FEUILLEX l'indique. 
Pour finir, il faudrait imprimer la FEUILLEY.

Merci d'avance pour votre aide. Belle journée.


Configuration: Android / SamsungBrowser 9.2
A voir également:

1 réponse

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
Modifié le 7 mai 2019 à 17:18
Bonjour Suli, bonjour le forum,

Essaie comme ça :

Sub Macro1()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim NB As Integer 'déclare la variable NB (NomBre)
Dim I As Integer 'déclare la variable I (Incrément)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)

Set OS = Worksheets("FEUILLEX") 'définit l'onglet OS
Set OD = Worksheets("FEUILLEY") 'définit l'onglet OD
OD.Range("A1").CurrentRegion.Clear 'efface d'éventuelles anciennes données
NB = OS.Range("A20").Value 'définit le nombre NB
If NB = 0 Then Exit Sub 'si NB est égale à 0, sort de la procédure
For I = 1 To NB 'boucle de 1 à NB
    'définit la cellule de destination DEST (A1 si A1 est vide, sinon la première cellule vide de la colonne A de l'onglet OD)
    If OD.Range("A1").Value = "" Then Set DEST = OD.Range("A1") Else Set DEST = OD.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0)
    OS.Range("A1:C9").Copy DEST 'copie la plage A1:C9 et la colle dans DEST
Next I 'prochaine fois de la boucle
OD.PrintOut 'imprime l'onglet OD
End Sub


0