Bonjour le fil, bonjour le forum,
Après avoir galéré sur la colonne des dates qui apparaissaient inversées (01/06/2022 au lieu de 06/01/2022) je te propose le code-ci-dessous qui semble fonctionner :
Sub Macro1()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim OD As Worksheet 'déclare la variable OS (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 K As Integer 'déclare la variable K (incrément)
Dim TL() As Variant 'déclare la variable TL (Tableau des Lignes)
Set OS = Worksheets("Feuil1") 'définit l'onglet source OS
Set OD = Worksheets("Feuil2") 'définit l'onglet destination OD
TV = OS.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
For I = 2 To UBound(TV, 1) Step 2 'boucle sur toutes les lignes I du tableau des valeur TV par pas de 2 (en partant de la seconde)
K = K + 1 'incrémente K
ReDim Preserve TL(1 To 5, 1 To K) 'redimensionne le tableau des lignes TL (5 lignes, K colonnes)
TL(1, K) = TV(I, 1) 'récupère le Nº dans la Ligne 1 de TL
TL(2, K) = TV(I, 2) 'récupère la date dans la ligne 2 de TL
TL(3, K) = TV(I, 4) 'récupère le type dans la ligne 3 de TL
TL(4, K) = TV(I, 5) 'récupère le libellé dans la ligne 4 de TL
TL(5, K) = IIf(TV(I, 7) <> "", TV(I, 7), -TV(I, 6)) 'récupère la valeur en fonction de sa colonne dans la ligne 5 de TL
Next I 'prochaine ligne de la boucle
If K = 0 Then Exit Sub 'si la variable K est égale à zéro, sort de la procédure
OD.Range("A1").CurrentRegion.Offset(1, 0).ClearContents 'efface les éventuelles anciennes données
OD.Columns(2).NumberFormat = "@" 'formate la colonne des dates en texte
OD.Range("A2").Resize(K, 5).Value = Application.Transpose(TL) 'renvoie dans A2 redimensionnée, le tableau TL transposé
OD.Columns(2).NumberFormat = "m/d/yyyy" 'formate la colonne des dates en date
End Sub