Bonjour a tous,
Je suis confronté à un problème de noms de plage.
Mon fichier comporte deux listes déroulantes liées.
J'ai donc, la première liste déroulante maitre qui fait référence à une plage (A1 à M1).
Et mes listes indirecte (A2 ; A 20) ; (B 2 ; B 20) etc...
Pour que les listes soient liées, la zone de chaque liste indirect doit porter le nom de la cellule maitre.
Si A1 = " Usinage "
A2 = " CN " ; A3 = "Debit " ; etc...
La plage A2 à A 20 doit porter le nom "Usinage".
La valeur des cellules maitres pouvant être modifiée, je dois passer par du VBA.
et Sur les feuilles sources:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Sub Renommer_Plage(TargetCell As Range) If TargetCell.Row = 1 And TargetCell.Column >= 2 And TargetCell.Column <= 16 Then ActiveWorkbook.Names.Add Name:=TargetCell.Value, RefersTo:=Range(TargetCell.Offset(1, 0), TargetCell.Offset(26, 0)) Else: End If End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub Worksheet_Change(ByVal Target As Range) Renommer_Plage Target End Sub
Les listes déroulantes marchent, mais au lieu de renommer la plage déjà existante, excel crée une nouvelle plage sur la même zone avec un nom différent.
Du coup, les données peuvent avoir des problèmes de fiabilité.
Je voudrais que lorsqu'une modif est faite dans la liste déroulante maitre, que la liste déroulante dépendante de la première renomme la plage au lieu d'en recréer une autre.
Je cherche depuis un moment la solution mais je crois bien avoir besoin d'aide....
Comment puis-je résoudre ce problème ?
Merci de vos commentaires,
Partager