Bonjour,
Je souhaite faire une boucle afin de coller une plage de cellules d'une feuille sur une autre feuille, en boucle jusqu'au ce que le nombre de cellules calculés précédemment est inférieur au nombre de lignes.

Voici le début de ma macro : il calcule le nombre de ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 Dim nbLignes As Integer ' nbLignes est une variable stockées sous forme de nombre
  nbLignes = (Cells(Rows.Count, 3).End(xlUp).Row + 1) ' calcul du nombre de lignes (nb de salaries) afin de répéter la boucle
Donc sur ma feuille active, je clique sur un bouton, ce dernier doit copier une plage de cellules de la feuille HORAIRE DE BASE SEM A, et la coller sur une plage de ma feuille active.
Lors de la boucle il doit aller chercher la plage de cellules 9 lignes en dessous et il doit coller sur la feuille active 11 lignes plus bas.

En français cela donne :
Je suis sur la feuille SEM1
Je clique sur le bouton,
Cela calcule le nombre de lignes maxi (ici 142),
copie de la plage B12:H18 de l' HORAIRE DE BASE SEM A et je le colle sur E12:K18 sur SEM1
Boucle : B21:H27 de HORAIRE DE BASE SEM A et je le colle sur E23:K29 sur SEM1
...boucle tant que la plage se situe en dessous de la ligne 142.

alors j'ai essayer de faire quelque chose... mais cela ne fonctionne pas sans grand étonnement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 'définition des variables
Dim TOUS As Range
Set TOUS = Cells(12, 5)
 Dim nbLignes As Integer ' nbLignes est une variable stockées sous forme de nombre
 Dim numeroL As Integer  ' numeroL est une variable stockées sous forme de nombre
 Dim numeroC As Integer  ' numeroC est une variable stockées sous forme de nombre
 nbLignes = (Cells(Rows.Count, 3).End(xlUp).Row + 1) ' calcul du nombre de lignes (nb de salaries) afin de répéter la boucle
 numeroL = 12 'numero de ligne = 12
 numeroC = 2 ' numero de colonne = 5
 
 
 Do While numeroL <= nbLignes ' boucle tant que le numéro de ligne est inférieur au nombre de lignes calculées 
Sheets("HORAIRE DE BASE SEM A").Range(Cells(numeroL, numeroC), Cells(numeroL + 5, numeroC + 6)).copie ' supprime le contenu des celules B12:H18
TOUS.PasteSpecial xlPasteAll
numeroL = numeroL + 11 ' boucle à la fin de la ligne +20
TOUS=TOUS+9
Loop ' fin de la boucle
Merci beaucoup à celles et ceux qui prendront le temps de m'aider.
Cordialement,
Nadège