Bonjour,
Apprenez à bien utiliser les propriétés et méthodes de la classe ListObject, et à indenter correctement votre code, cela vous évitera des erreurs et facilitera la maintenance.
ci-dessous votre code révisé
Private Sub BtnEnregistrerConsoBar_Click()
Dim DL As Integer
Dim list_nombre As Integer
Dim Ligne As Integer
list_nombre = Me.ListBoxConsoBar.ListCount - 1
If Me.ListBoxConsoBar.ListCount > 0 Then 'controle si la liste n'est pas vide
If MsgBox("Voulez- vous enregistrer ces mouvements ?", vbYesNo) <> vbYes Then Exit Sub
For Ligne = 0 To list_nombre
With Range("TabListemouv").ListObject
'Ajouter une nouvelle dans le tableau conso
.ListRows.Add
'Dernière ligne vide du tableau
DL = .ListRows.Count
'Ajouter les infos dans le tableau ??? écrasé par le paquet d'instructions suivantes
'Sheets(6).Range("b" & DL) = Me.TxtDateConsoBar
'Sheets(6).Range("c" & DL) = Me.CbxProduit
'Sheets(6).Range("f" & DL) = Me.TxtDebutFrigo
'Sheets(6).Range("g" & DL) = Me.TxtFinFrigo
'Sheets(6).Range("h" & DL) = Me.TxtSortieCave
'Ajouter les donnée de la zone de liste
.ListColumns("Date").DataBodyRange(DL) = Me.ListBoxConsoBar.List(Ligne, 0)
.ListColumns("Produit").DataBodyRange(DL) = Me.ListBoxConsoBar.List(Ligne, 1)
.ListColumns("Début").DataBodyRange(DL) = Me.ListBoxConsoBar.List(Ligne, 2)
.ListColumns("Fin").DataBodyRange(DL) = Me.ListBoxConsoBar.List(Ligne, 3)
.ListColumns("Sortie").DataBodyRange(DL) = Me.ListBoxConsoBar.List(Ligne, 4)
End With
Next Ligne
MsgBox ("Les informations ont été enregistrées")
Me.TxtDateConsoBar = ""
Unload Me
ThisWorkbook.Save
End If
End Sub
NB: avec ce code, aucune référence à la feuille contenant le tableau structuré n'est nécessaire, le nom seul du tableau :
TabListemouv
est suffisant. De plus, le fait d'utiliser les noms de colonne rend votre code invariant si une nouvelle colonne est insérée dans votre tableau.