Menu

Copier coller une zone

Messages postés
4
Date d'inscription
jeudi 28 mars 2019
Statut
Membre
Dernière intervention
4 mai 2019
- - Dernière réponse : ThauTheme
Messages postés
4498
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
17 mai 2019
- 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
Afficher la suite 

Votre réponse

1 réponse

Messages postés
4498
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
17 mai 2019
230
0
Merci
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


À plus,
ThauTheme
Commenter la réponse de ThauTheme