Bonjour le fil, bonjour le forum,
Si j'ai moi aussi bien compris, une proposition VBA avec le code commenté ci-dessous :
Sub Macro1()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
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 Integer '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 (Taleau des Lignes)
Set OS = Worksheets("Erable_rougeTAB_C") 'définit l'onglet source OS (à adapter a ton cas)
Set OD = Worksheets("Erable_rougeTAB_C-Tableau") 'définit l'onglet destination OD (à adapter a ton cas)
OD.Range("A1").CurrentRegion.Offset(1, 0).ClearContents 'efface les anciennes données de l'onglet destination
TV = OS.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
K = 1 'initialise la variable K
For I = 2 To UBound(TV, 1) 'boucle 1 : sur toutes les lignes I du tableau des valeur (en partant de la seconde)
For J = 2 To UBound(TV, 2) 'boucle 2 : sur toutes les colonnes J du tableau des valeur (en partant de la seconde)
ReDim Preserve TL(1 To 5, 1 To K) 'redmensionne le tableau des lignes TL (5 lignes K colonne)
TL(1, K) = TV(I, 1) 'récupère l'année dans la ligne 1 de TL
If TV(I, J) <> "" Then 'condition : si la donnée ligne I colonne J n'est pas vide
TL(2, K) = TV(1, J) 'récupere dans la ligne 2 de TL la donné ligne 1 colonne J de TV
TL(3, K) = TV(1, J) 'récupere dans la ligne 3 de TL la donné ligne 1 colonne J de TV
TL(4, K) = TV(1, J) 'récupere dans la ligne 4 de TL la donné ligne 1 colonne J de TV
TL(5, K) = TV(I, J) 'récupere dans la ligne 5 de TL la donné ligne I colonne J de TV
K = K + 1 'incrémente K
End If 'fin de la condition
Next J 'prochaine colonne de la boucle 2
Next I 'prochaine ligne de la boucle 1
'si K est supérieure à 1, renvoie dans la celluel A2 redimensionnée de l'onglet OD, le tableau TL transposé
If K > 1 Then OD.Range("A2").Resize(K - 1, 5).Value = Application.Transpose(TL)
End Sub