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
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