Liste déroulante en fonction d'une variable

dealise

XLDnaute Junior
Bonjour,

Je rencontre un problème pour faire une liste déroulante en fonction d'une variable en VBA.
Je m'explique : je voudrais que si l'utilisateur change une cellule la bonne liste déroulante s'affiche en face.
Pour cela j'ai écrit une macro evenementielle :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim a As Integer


If Target.Column = 2 And (Target.Row > 16) Then
a = Target.Row
Range("C" & a).Select
catego = Range("B" & a)

Application.WindowState = xlMaximized
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=catego"
MsgBox catego



.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With

End If

End Sub



Je vous join mon fichier Excel, pour que vous puissiez voir comment j'ai défini mes plage de donnée et comment je leur est donnée des noms.

je suis débutante en VBA, et je ne vois vraiment pas mon erreurs, car si je met "Loisir" a la place de Catego j'obtiens bien la bonne liste déroulante...


merci beaucoup d'avance pour votre aide !!!
 

Pièces jointes

  • Gabarit finance.xlsm
    31.2 KB · Affichages: 72

Cousinhub

XLDnaute Barbatruc
Re : Liste déroulante en fonction d'une variable

Bonjour,

tout d'abord, fais bien attention à tes noms définis, ils doivent être "STRICTEMENT" identiques à tes noms de la liste "catégorie"

Par exemple, "Sante" et non "Santé", ou encore "High", et non "High-tech"....

Ensuite, essaie ce code :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target <> "" Then
    If Target.Column = 2 And Target.Row > 16 Then
        With Target.Offset(, 1).Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                xlBetween, Formula1:="=" & Target
        End With
    End If
End If
End Sub

Bon courage
 

dealise

XLDnaute Junior
Re : Liste déroulante en fonction d'une variable

Effectivement sa marche !!!!!

Merci beaucoup pour l'aide aussi précise et rapide !
Je suis toujours épaté par la rapidité et l'efficacité des réponses sur ce forum !

Merci encore pour ton aide!
 

Discussions similaires

Réponses
8
Affichages
502

Statistiques des forums

Discussions
312 841
Messages
2 092 705
Membres
105 514
dernier inscrit
Hébera