RE,
1 - La plage variable prend bien en l'intégralité de la plage (donc le 9/2).
'Transfert plage variable (dans l'exemple $A$3:$AJ$21) dans un tableau (Array)
tbl = wsData.Cells(3, 1).CurrentRegion
2 - Lors de la création du tableau (Arr), on ne travaille que les cellules [tbl(I,J)] non vides. Ceci pour éviter d'avoir un tableau avec des valeurs à zéro. Si tu veux toutes les dates, il suffit d’inhiber 2 lignes de la procédure (If tbl(I,J)<>"" et End If), soit :
'Création Array (Arr) 6 lignes x k colonnes (variable)
For I = 2 To UBound(tbl)
For J = 5 To UBound(tbl, 2)
'If tbl(I, J) <> "" Then
'Array 6 lignes x k colonnes
ReDim Preserve Arr(6, k + 1)
'Code 1
Arr(0, k) = tbl(I, 1)
'Lib 1
Arr(1, k) = tbl(I, 2)
'CHAMPS
Arr(2, k) = tbl(I, 3)
'Ne pas supp
Arr(3, k) = tbl(I, 4)
'Date (entier long)
Arr(4, k) = CLng(tbl(1, J))https://forum.excel-pratique.com/posting.php?mode=reply&f=2&t=104334#
'Valeur
Arr(5, k) = tbl(I, J)
k = k + 1
'End If
Next J
Next I
3 - Arr(4,k) = Clng(tbl(1,J)) : On récupère la 1ère. ligne et le numéro de colonne pour la date (que 'on convertit en un nombre entier)
4 - Je viens de voir ton nouveau message. Je reviens rapidement.