Copier coller une zone

suli1870 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   160
 
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