Sub Ventiler()
'Désolé j'ai du mal avec les abrévatiations. t As ?, i As Long, J as Long, K as Long, Struc As ListObject, ligne As ?
Dim t, i&, j&, k&, Struc As ListObject, ligne
Application.ScreenUpdating = False
'ici le listObjects(1) aurait pu s'appeler ListObjects("BD") ?
With Sheets("BDD"): t = .ListObjects(1).DataBodyRange: End With
With Sheets("Export")
'Si j'ai 10 tableaux, je dois mettre 1 to 10 ?
For k = 1 To 3
Set Struc = .ListObjects("Tableau" & k)
' mettre en commentaire la ligne suivante si on ne veut pas faire
' une RAZ des tableaux mais y ajouter les données.
' que signifie RAZ ? effacer le tableau ?
' que signifie le i = 1 To ?
For i = 1 To Struc.ListRows.Count: Struc.ListRows(1).Delete: Next
For i = 1 To UBound(t)
'le i c'est la ligne ? 11ème colonne. Donc si elle n'est pas vide et si la 12 colonne à une valeur supérieur à 0 alors
If Len(t(i, 11)) <> 0 And InStr(t(i, 12), k) > 0 Then
'K est la valeur de cette 12ème colonne ? Comment fais-tu la distinction entre les ; ?
Set ligne = .ListObjects("Tableau" & k).ListRows.Add
'ajouter sur la 1ère colonne du tableau la valeur en 1 première colonne du tableau de référence, etc..
ligne.Range(1, 1) = t(i, 1)
ligne.Range(1, 2) = t(i, 7)
ligne.Range(1, 3) = t(i, 8)
End If
Next i
Next k
.Activate
End With
End Sub