Liste de choix selon critère avec Worksheet_Change

GS82

XLDnaute Occasionnel
Voila j'ai un problème assez complexe mais que j'arrive pas a resoudre
j'ai la colonne C:C
cette colonne contient des opérations genre (coupe, soudure, cintrage, etc....)
lors du saisi on choisit une opération dans une liste de choix (menu validation/liste etc...)
ensuite

on dispose d'une colonne D:D qui renferme des machines
a chaque opération choisie on dispose d'une liste de machine relatives a cette oopération

donc si lors du saisi on choisit l'opération coupe dans une des cellules de la colonne C:C


la liste des machine dans la cellule D a coté ne doit contenir que les machines relatives à l'opération coupe


Je sais vous vous dites que je peut tout simplement mettre dans D:D une fonction genre

si(cellule Ci="Coupe"listemachinecoupe;si(cellule Ci="Soudure";listemachinesoudure;etc....)

mais ce n'est pas possible pour ce cas car le nombre d'opération est 15 avec ce qui dépasse les capacité d'excel et incite selon ce que je pense l'utilisation de Worksheet_Change
mais je ne sais pas comment ecrir le code
j'ai essayé ceci mais ça n'aboutit pas
en plus je n'arrive tjrs pas a bien manipuler Worksheet_Change (j'arrive pas a controler le Target a chaque fois :))

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

 Target = Worksheets("mafeuille").Range("D11:D30") 

'la colonne D11:D30 renferment le choix des machines

   Worksheets("mafeuille").Select
   Dim h As String
   h = Target.Value
   
         
     Target.Offset(0, -1).Select
'pour selectionner la cellule C juste à coté

select case h
case "coupe"    
With Selection.validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=listemachinecoupe"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With

'etc.....

j'attends vos réponses les Xldiens et les Xldiennes
et chui la pour d'amples infos ;)
 
G

Guest

Guest
Re : Liste de choix selon critère avec Worksheet_Change

Bonjour Gs82,

Nomme tes listes suivant les noms de validation de la colonne C:C -> 'coupe', 'soudure','cintrage' au lieu de 'listemachinecoupe'

Et dans les cellules de la colonne D tu n'auras plus qu'à faire Menu/Validation/Liste et mettre en formule =Indirect("$C1")

Sinon dans l'évènement Change, c'est excel qui détermine Target.
Target est la cellule qui a appelée l'évènement (qui vient d'être changée).

Si tu veux définir une autre plage procède de la manière suivante
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
     'Si la cellule qui vient d'être changée n'est pas en colonne c-> sortir
     If Target.Column<>3 then exit sub
 
     Dim Plage as Range
     set Plage=Worksheets("mafeuille").Range("D11:D30") 
 
.....
End Sub
A plus
[Edit] Salut Jacques:)
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 379
Messages
2 087 767
Membres
103 662
dernier inscrit
rterterert