Bonjour
Votre code comme ceci
Private Sub CommandButton2_Click()
Dim r As Integer, numfact As Integer
With Me.ListBox1
If .ListIndex = -1 Then MsgBox "Vous n'avez rien sélectionné !", vbCritical, "Selection Liste": Exit Sub
numfact = .List(.ListIndex, 3) 'Numéro de FactLog
End With
r = Application.IfError(Application.Match(numfact, Range("TabSave[NumFactLog]"), 0), 0)
If r = 0 Then
MsgBox "Erreur ## - Pas de NumFactLog", vbInformation, "Facture inexistante"
Exit Sub
End If
With Sheets("Consultation")
.Select
.Range("F4") = numfact
.Range("D6:D7") = Range("TabSave").ListObject.DataBodyRange(r, 5).Resize(r, 2).Value
End With
Unload Me
End Sub
Par contre je vous ai proposé des codes hier pour l'ouverture de l'userform, apparemment cela n'a servi à rien, qui plus est vous utilisez des boucles inutilement --> https://forum.excel-pratique.com/s/goto/1253630
1. Votre sub initialize comme ceci
Private Sub UserForm_Initialize()
Dim i As Byte
With ListBox1
.ColumnWidths = "60;80;80;80;50;50"
.ColumnCount = 6
.List = Range("Tabsave").ListObject.DataBodyRange.Value
End With
ComboBox1.List = Application.Transpose(Range("Tabsave").ListObject.HeaderRowRange.Resize(1, 6).Value)
End Sub
2. Votre code textbox_change est exécutée deux fois inutilement. C'est pour cette raison que je vous ai dit quoi faire ici --> https://forum.excel-pratique.com/s/goto/1253617
Dans ce que je vous ai proposé, il suffisait de remplacer Tableau1 par TabSave qui le nom de votre tableau structuré en feuille Save.[s=co-4f81bd][/s]
Edit : Pour plus de facilité, supprimez tous les codes de votre userform1 et remplacez-les par ceux dans le fichier joint
Le code CommandButton2_click relatif à votre demande sur ce fil est aussi inclu dans ce fichier
Crdlt