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 :
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.
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
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
Merci beaucoup à celles et ceux qui prendront le temps de m'aider.
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
Cordialement,
Nadège
Partager