Option Explicit
Sub CreerTbResultat()
Dim ws As Worksheet
Dim loDate As ListObject, loValeur As ListObject, loResultat As ListObject
Dim rngDate As Range, rngValeur As Range
Dim i As Long, j As Long, ligne As Long
Set ws = ThisWorkbook.Sheets("Feuil1")
' Récupérer les tableaux existants
Set loDate = ws.ListObjects("Tableau1")
Set loValeur = ws.ListObjects("Tableau2")
Set rngDate = loDate.DataBodyRange
Set rngValeur = loValeur.DataBodyRange
' Supprimer l'ancien tableau TbResultat s'il existe
On Error Resume Next
ws.ListObjects("TbResultat").Delete
On Error GoTo 0
' Poser les en-têtes à partir de F3
ws.Range("I3").Value = "Date"
ws.Range("J3").Value = "Valeur"
ligne = 4
' chaque date × chaque valeur
For i = 1 To rngDate.Rows.Count
For j = 1 To rngValeur.Rows.Count
ws.Cells(ligne, 6).Value = rngDate.Cells(i, 1).Value
ws.Cells(ligne, 7).Value = rngValeur.Cells(j, 1).Value
ligne = ligne + 1
Next j
Next i
' Créer le tableau structuré TbResultat
Set loResultat = ws.ListObjects.Add( _
SourceType:=xlSrcRange, _
Source:=ws.Range("F3").Resize(ligne - 3, 2), _
XlListObjectHasHeaders:=xlYes)
loResultat.Name = "TbResultat"
MsgBox "Tableau TbResultat créé avec " & loResultat.DataBodyRange.Rows.Count & " lignes."
End Sub