Hello,
J'ai pas tout compris cette histoire de filtre ...
J'ai corrigé quelques bug sur ta listbox et sur ton evènement de feuille :
Sub AlimenterListbox()
Dim ws_1 As Worksheet
Dim Lr As Long
Dim Compteur As Integer
Dim Ligne As Integer
Dim colonne As Integer
Dim Tablo() As String
Set ws_1 = ThisWorkbook.Sheets("RECAP")
Lr = ws_1.Range("A" & Rows.Count).End(xlUp).Row
If Lr = 4 Then
Set ws_1 = Nothing
Exit Sub
End If
Compteur = Lr - 4
Counter = Lr - 4
ReDim Tablo(Counter, 17)
For Ligne = 5 To Counter + 4
For colonne = 1 To 17
Tablo(Ligne - 4, colonne) = ws_1.Cells(Ligne, colonne).Value
Next colonne
Next Ligne
Me.ListBox1.Clear
Me.ListBox1.List = Tablo
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim col_D As Range
Dim col_P As Range
Dim Derlig&, i&, RechZone As Range, Ws As Worksheet
Set col_P = Feuil5.Range(Feuil5.Cells(5, 17), Feuil5.Cells(9999, 17))
Set col_D = Feuil5.Range(Feuil5.Cells(5, 5), Feuil5.Cells(9999, 5))
Set Ws = ThisWorkbook.Sheets("RECAP")
If Target.Count = 1 Then
Derlig = Ws.Range("G" & Rows.Count).End(xlUp).Row
Set RechZone = Ws.Range("G5:G" & Derlig)
With Ws
For i = Derlig To 2 Step -1
If WorksheetFunction.CountIf(RechZone, .Range("G" & i)) > 1 Then
.Range("G" & i).Value = .Range("G" & i).Value & ".bis"
ElseIf Target.Value = "ommerciale" Then
Target.Value = "SVC"
ElseIf Target.Value = "Uniquement pour Douane" Then
Target.Value = "pr Douane"
Else: Exit Sub
Debug.Print mymodule
End If
Next
End With
End If
Set Ws = Nothing
Debug.Print mymodule
End Sub