Sub Macro1()
Dim C As Worksheet 'déclare la variable C (onglet Calculs)
Dim G As Worksheet 'déclare la variable G (onglet Gestion)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Byte 'déclare la variable J (incrément)
Dim K As Integer 'déclare la variable K (incrément)
Dim TL() As Variant 'déclare la variable TL (Tableau des Lignes)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
Set C = Worksheets("Calculs") 'définit l'onglet C
Set G = Worksheets("Gestion") 'définit l'onglet G
TV = C.Range("a1").CurrentRegion 'définit le tableau des valeurs TV
K = 1 'initialise la variable K
For I = 3 To UBound(TV, 1) 'boucle 1 : sur toutes les lignes I du tableau des valeurs TV (en partant de la troisième)
If TV(I, 5) <> "" Then 'condition : si la donnée ligne I colonne 5 (=> colonne E) contient une valeur
ReDim Preserve TL(1 To 6, 1 To K) 'redimensionne le tableau des lignes (6 lignes, K colonnes)
For J = 1 To 6 'boucle 2 : sur les 6 colonnes du tableau des valeurs TV
TL(J, K) = TV(I, J) 'récupère en ligne J de TL la valeur en colonne J de TV (= transposition)
Next J 'prochaine colonne de la boucle 2
K = K + 1 'incrémente K (ajoute une colonne au tableau des lignes TL)
End If 'fin de la condition
Next I 'prochaine ligne de la boucle 1
If K > 1 Then 'condition : si K est supérieure à 1 (au moins une occurrence trouvée)
Set DEST = G.Range("C" & Application.Rows.Count).End(xlUp).Offset(1, 0) 'définit la cellule de destination DEST
DEST.Resize(UBound(TL, 2), UBound(TL, 1)).Value = Application.Transpose(TL) 'renvoie dans DEST redimensionnée le tableau TL transposé
End If 'fin de la condition
End Sub