Définir et nommer une plage comme référence dans une zone de liste modifiable

lolo62000

XLDnaute Junior
Bonjour,

j'aimerais remplir une liste modifiable, à partir d'une zone prédéfinie dans laquelle il existe des cellules vides. Mais pour améliorer l'affichage, j'aimerais que les cellules non remplies n'apparaissent pas.
J'ai essayé de nommer des plages, pour les utiliser dans le reste de mon code, mais j'enchaîne débogage sur débogage.
Je ne suis pas expert en vba, et après recherches, je me tourne vers vous car je n'arrive pas à trouver de solutions.
Les liens que j'essaye de faire sont en bleus, et en rouge, c'est la référence que je voudrais remplacer par la plage "Ran1". J'espère être clair dans ma question. ;)
Précision, la macro s'exécute quand je suis sur la feuille "Liste des fournisseurs", mais la plage de mes données se trouvent sur la page "DB_Source".
Merci pour votre aide,
Laurent.


Sub Zonecombinée22_QuandChangement()
Dim Ran1 As Range
Ran1 = Sheets("DB_Source").Range("E2:E31" & Cells(Rows.Count, 1).End(xlUp).Row)

'*******************
'1 = Tous()
If Range("E1").Value = "1" Then
Range("A5:J5").Select
Selection.AutoFilter
Selection.AutoFilter
ActiveSheet.Shapes("Drop Down 31").Select
With Selection
.ListFillRange = "DB_Source!$C$2:$C$2"
.LinkedCell = "$E$2"
.DropDownLines = 8
.Display3DShading = False
End With

Range("A5").Select
Exit Sub

Else
'*******************
'2 = Administration


If Range("E1").Value = "2" Then
ActiveSheet.Shapes("Drop Down 31").Select
With Selection
.ListFillRange = "DB_Source!$E$2:$E$3" Ran1
.LinkedCell = "$E$2"
.DropDownLines = 8
.Display3DShading = False
End With
End If
Range("A5").Select
'*******************
'3 = Aménagement paysager
If Range("E1").Value = "3" Then

ActiveSheet.Shapes("Drop Down 31").Select
With Selection
.ListFillRange = "DB_Source!$E$2:$E$3"
.LinkedCell = "$E$2"
.DropDownLines = 8
.Display3DShading = False
End With
End If
Range("A5").Select

End With
End If
End Sub
 

Discussions similaires