wizard0147
XLDnaute Occasionnel
Bonjour à tous,
tout nouveau sur VB, je cherche à créer un menu déroulant en fonction d'un autre. J'ai donc créer ce code mais j'ai quelques petits problèlmes. Je cherche à créer un menu déroulant en B12 en fonction de la réponse en B9. Voici ce que j'ai fait pour le moment :
Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$9" Then
Range("B12") = ""
End If
Dim Z As Variant
If Range("B9") = "E150a" Then
Z = "=$A$29:$A$31"
End If
If Range("B9") = "E150b" Then
Z = "Unknown"
End If
If Range("B9") = "E150c" Then
Z = "=$C$29:$C$37"
End If
If Range("B9") = "E150d" Then
Z = "=$D$29:$D$36"
End If
If Range("B9") = "Unknown" Then
Z = "Unknown"
End If
Range("B12").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Z
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
Le problème c'est que dès que je modifie une cellule sur la feuille, excel m'emmène directment en B12 !!! Si une âme charitable pouvait m'aider sur ce coup.
Merci d'avance
tout nouveau sur VB, je cherche à créer un menu déroulant en fonction d'un autre. J'ai donc créer ce code mais j'ai quelques petits problèlmes. Je cherche à créer un menu déroulant en B12 en fonction de la réponse en B9. Voici ce que j'ai fait pour le moment :
Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$9" Then
Range("B12") = ""
End If
Dim Z As Variant
If Range("B9") = "E150a" Then
Z = "=$A$29:$A$31"
End If
If Range("B9") = "E150b" Then
Z = "Unknown"
End If
If Range("B9") = "E150c" Then
Z = "=$C$29:$C$37"
End If
If Range("B9") = "E150d" Then
Z = "=$D$29:$D$36"
End If
If Range("B9") = "Unknown" Then
Z = "Unknown"
End If
Range("B12").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Z
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
Le problème c'est que dès que je modifie une cellule sur la feuille, excel m'emmène directment en B12 !!! Si une âme charitable pouvait m'aider sur ce coup.
Merci d'avance