je pensais avoir déjà fait cela en manipulant les cellules visibles, mais j'avais oublié qu'on ne peut affecter une plage à plusieurs zones en tant qeu zone source
voilà une solution pas très éprouvée pour donner des idées
Sub d()
'Feuil1.OLEObjects(1).ListFillRange = Sheets("Feuil1").Range("_filterdatabase").SpecialCells(xlCellTypeVisible).Areas
'MsgBox Sheets("Feuil1").Range("_filterdatabase").SpecialCells(xlCellTypeVisible).Areas.Count
Dim rg_fill As Range, obj_combo As OLEObject, rg_zone As Range, rg As Range
Set obj_combo = Feuil1.OLEObjects(1)
'réinitialiser la combo
obj_combo.ListFillRange = ""
Set rg_zone = Sheets("Feuil1").Range("_filterdatabase").SpecialCells(xlCellTypeVisible)
For Each rg In rg_zone.Areas
Debug.Print rg.Address
If Not rg_fill Is Nothing Then
Set rg_fill = Union(rg_fill, rg)
Else
Set rg_fill = rg
End If
Next rg
rg_fill.Copy Destination:=[E1]
obj_combo.ListFillRange = [E1].CurrentRegion.Address
'MsgBox rg_fill.Address
End Sub
bye
stephane