Code pour masquer un ou plusieurs choix d'une liste

rachyou

XLDnaute Nouveau
Bonjour a tous,

je suis debutant en VBA et je voudrais que quelq'un de vous me donne un code VBA pour mon petit problème SVP =)

Alors dans le fichier ci joint j'ai créé deux liste une s'appelle "type de moteur" et l'autres s'appelle "cable" alors que "type" moteur contient 3 choix et "cable" contient 6 choix.

Donc je voudrais quand je choisis dans la liste de "type de moteur" la lettre "A" qu'elle disparait automatiquement les lettre "B1 B2 C1 C2" et qui me reste juste les lettres "A1 A2" et pareil quand je choisi "B" dans "type de moteur" qu'elle disparait les lettres "A1 A2 C1 C2" et qui me laisse juste "B1 B2" et pareil pour la lettre C.

Merci en avance

Salutations =)
 

Pièces jointes

  • Un test.xlsm
    14.7 KB · Affichages: 30
  • Un test.xlsm
    14.7 KB · Affichages: 33
  • Un test.xlsm
    14.7 KB · Affichages: 31

jim7963

XLDnaute Junior
Re : Code pour masquer un ou plusieurs choix d'une liste

Bonjour Rachyou,

voici le code à insérer dans ta feuille1. Il est surement perfectible.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Range("B5").Value = "A" Then
    Range("B7").Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=cable_A"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
ElseIf Range("B5").Value = "B" Then
    Range("B7").Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=cable_B"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
ElseIf Range("B5").Value = "C" Then
    Range("B7").Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=cable_C"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
End If
Application.ScreenUpdating = True
End Sub

En sachant que dans les noms je n'ai pas laissé "cable" pour tous les choix mais j'ai séparé en 3: cable_A pour A1 et A2, cable_B pour B1 et B2 et cable_C pour C1 et C2.
 

Discussions similaires

Réponses
19
Affichages
2 K

Statistiques des forums

Discussions
312 582
Messages
2 089 953
Membres
104 316
dernier inscrit
BNade