VBA Liste déroulantes sous cellule Excel
Hello les Excel-VBA Master !
Je suis là pour solliciter votre aide pour m'aider à résoudre mon problème et je vous remercie d'avance.
Mon problème : Je souhaite créer une liste déroulante en vba dans une cellule Excel en fonction de la valeur sélectionnée dans une liste liste déroulante. J'ai réussi à créer la liste déroulante en vba mais le problème c'est que cette liste déroulante créée en vba bloque toutes les autres listes déroulantes (mises en place via l'outil "data validation") de la feuille Excel. C'est-à-dire que quand je veux cliquer sur une autre liste déroulante ou tout autre cellule, ça marche pas et le curseur vient automatiquement sur la liste déroulante VBA.
Voici le code:
If Range("B8").Value = "Legumes" Then
Range("B16").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="Pommes, bananes, poires"
.IgnoreBlank = False
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
ElseIf Range("B8").Value = "Fruits" Then
Range("B16").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="carottes, poireaux"
.IgnoreBlank = False
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
ElseIf Range("B8").Value = "Féculents" Then
Range("B16").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="Riz, pâtes"
.IgnoreBlank = False
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Else
Range("B16").Value = "Autres"
End If
Merci beaucoup !
Bonjour,
Une piste :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Liste As String
If Target.Address(0, 0) <> "B8" Then Exit Sub
If Target.Count > 1 Then Exit Sub
Select Case Range("B8").Value
Case "Legumes": Liste = "carottes, poireaux"
Case "Fruits": Liste = "Pommes, bananes, poires"
Case "Féculents": Liste = "Riz, pâtes"
Case Else: Liste = "Autres"
End Select
With Range("B16").Validation
.Delete
.Add xlValidateList, , , Liste
End With
End SubMaintenant, il n'y a aucune raison pour que les autres listes de validation ne soient plus opérationnelles !
Merciiiii beaucoup !!! Vous êtes troop forts !