[COLOR=blue]Sub[/COLOR] Macro1()
[COLOR=blue]Dim[/COLOR] dat1 [COLOR=blue]As[/COLOR] Range[COLOR=green] 'déclare la variable dat1[/COLOR]
[COLOR=blue]Dim[/COLOR] dat2 [COLOR=blue]As[/COLOR] Range[COLOR=green] 'déclare la variable dat2[/COLOR]
[COLOR=blue]Dim[/COLOR] x [COLOR=blue]As Integer[/COLOR][COLOR=green] 'déclare la variable x[/COLOR]
[COLOR=blue]Dim[/COLOR] y [COLOR=blue]As Byte[/COLOR][COLOR=green] 'déclare la variable y[/COLOR]
[COLOR=blue]Dim[/COLOR] z [COLOR=blue]As Integer[/COLOR][COLOR=green] 'déclare la variable z[/COLOR]
[COLOR=green]'efface les anciennes données de l'onglet "Rapport"[/COLOR]
Liste = "data1,data2,"
Sheets("Rapport").Rows("5:14").ClearContents
Sheets("Rapport").Rows("17:26").ClearContents
z = 4
[COLOR=blue]For Each[/COLOR] Cht [COLOR=blue]In[/COLOR] ActiveWorkbook.Worksheets
[COLOR=blue]If[/COLOR] InStr(Liste, Cht.Name & ",") <> 0 [COLOR=blue]Then[/COLOR]
[COLOR=blue]Set[/COLOR] dat1 = Sheets("data1").Range("A1").CurrentRegion[COLOR=green] 'définit la plage dat1[/COLOR]
[COLOR=blue]Set[/COLOR] dat1 = dat1.Offset(1, 0).Resize(dat1.Rows.Count - 1)[COLOR=green] 'redéfinit la plage dat1 (sans la première ligne)[/COLOR]
y = 1[COLOR=green] 'définit la variable y[/COLOR]
[COLOR=blue]For[/COLOR] x = 1 [COLOR=blue]To[/COLOR] dat1.Rows.Count[COLOR=green] 'boucle sur toutes les lignes de dat1[/COLOR]
[COLOR=blue]If[/COLOR] y > 10 [COLOR=blue]Then Exit For[/COLOR][COLOR=green] 'si y est supérieur à 10, sort de la boucle[/COLOR]
[COLOR=blue]If[/COLOR] dat1.Rows(x).Hidden = [COLOR=blue]False Then[/COLOR][COLOR=green] 'condition : si la ligne n'est pas masquée[/COLOR]
dat1.Rows(x).Copy Sheets("Rapport").Cells(z + y, 1)[COLOR=green] 'copie la ligne dans l'onglet Rapport[/COLOR]
y = y + 1[COLOR=green] 'redéfinit la variable y[/COLOR]
[COLOR=blue]End If[/COLOR][COLOR=green] 'fin de la condition[/COLOR]
[COLOR=blue]Next[/COLOR] x
z = z + 12
[COLOR=blue]End If[/COLOR]
[COLOR=blue]Next[/COLOR] Cht
[COLOR=blue]End Sub[/COLOR]