1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| Private Sub Test()
Dim Lig1 As Integer 'Lig1 est un entier
Dim Col1 As Integer 'Col1 est un entier
Dim MaFeuille As Worksheet 'MaFeuille est une feuille
Dim Ligne As Integer 'Ligne est un entier
Dim Result()
Dim Tabl
Application.ScreenUpdating = False
For Each MaFeuille In Sheets
Ligne = Ligne + MaFeuille.Cells(MaFeuille.Rows.Count, 1).End(xlUp).Row
Next MaFeuille
ReDim Result(14, Ligne)
With Feuil1
If Application.CountA(Feuil1.Range("A:A")) > 1 Then
.Range(.[A3], .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 14).ClearContents
End If
End With
Lig1 = 1
For Each MaFeuille In Sheets
If MaFeuille.Name Like "Act*" Then 'les feuilles concernées portent toutes un nom commançant par "Activités de..."
With MaFeuille
Tabl = Application.Transpose(.Range(.Cells(3, 1), .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 14))
For Ligne = 1 To UBound(Tabl, 2) 'pour info, en mettant ...=3 To 1200, le temps d'exécution est le même
If Tabl(2, Ligne) <> "" Then
For Col1 = 1 To 14 'chaque tableau à 14 colonnes
Result(Col1, Lig1) = Tabl(Col1, Ligne)
Next
Lig1 = Lig1 + 1
End If
Next
End With
End If
Next
Feuil1.[A3].Resize(UBound(Result, 2), 14) = Application.Transpose(Result)
Application.ScreenUpdating = True
End Sub |
Partager