Sur une feuille, j'ai plusieurs listes déroulantes qui font référence aux
mêmes données. Je souhaiterais que lorsqu'une de ces données est
sélectionnée dans une liste elle n'apparaisse plus dans les autres.
Comment puis-je procéder ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ChrisV
Bonjour Octave,
Solution alternative... afin d'éviter l'usine à gaz: interdire la sélection d'un item de la liste déroulante si il est déjà présent sur une des listes déjà renseignée...
En supposant que les listes déroulantes soient situées en B2; C2 et D2 et que les données de ces listes proviennent d'une zone nommée Zn. (par les menus, pour la plage B2:D2, Données/Validation.../Options/Autoriser: Liste/Source: =Zn)
Dans la feuille de code de l'onglet concerné:
Private Sub Worksheet_Change(ByVal c As Range) If c.Address = "$B$2" And Not IsEmpty(c) Then _ If c = [C2] Or c = [D2] Then msG If c.Address = "$C$2" And Not IsEmpty(c) Then _ If c = [B2] Or c = [D2] Then msG If c.Address = "$D$2" And Not IsEmpty(c) Then _ If c = [B2] Or c = [C2] Then msG End Sub
Private Sub msG() inF = MsgBox("Choix non-autorisé !", vbInformation, "Désolé...") ActiveCell.ClearContents End Sub
ChrisV
"Octave" a écrit dans le message de news:ccke31$c0$
Bonjour,
Je souhaiterais vous poser la question suivante :
Sur une feuille, j'ai plusieurs listes déroulantes qui font référence aux mêmes données. Je souhaiterais que lorsqu'une de ces données est sélectionnée dans une liste elle n'apparaisse plus dans les autres. Comment puis-je procéder ?
D'avance merci pour vos réponses.
Octave
Bonjour Octave,
Solution alternative... afin d'éviter l'usine à gaz:
interdire la sélection d'un item de la liste déroulante si il est déjà
présent sur une des listes déjà renseignée...
En supposant que les listes déroulantes soient situées en B2; C2 et D2 et
que les données de ces listes proviennent d'une zone nommée Zn.
(par les menus, pour la plage B2:D2,
Données/Validation.../Options/Autoriser: Liste/Source: =Zn)
Dans la feuille de code de l'onglet concerné:
Private Sub Worksheet_Change(ByVal c As Range)
If c.Address = "$B$2" And Not IsEmpty(c) Then _
If c = [C2] Or c = [D2] Then msG
If c.Address = "$C$2" And Not IsEmpty(c) Then _
If c = [B2] Or c = [D2] Then msG
If c.Address = "$D$2" And Not IsEmpty(c) Then _
If c = [B2] Or c = [C2] Then msG
End Sub
Private Sub msG()
inF = MsgBox("Choix non-autorisé !", vbInformation, "Désolé...")
ActiveCell.ClearContents
End Sub
ChrisV
"Octave" <octave@free.fr> a écrit dans le message de
news:ccke31$c0$1@news-reader5.wanadoo.fr...
Bonjour,
Je souhaiterais vous poser la question suivante :
Sur une feuille, j'ai plusieurs listes déroulantes qui font référence aux
mêmes données. Je souhaiterais que lorsqu'une de ces données est
sélectionnée dans une liste elle n'apparaisse plus dans les autres.
Comment puis-je procéder ?
Solution alternative... afin d'éviter l'usine à gaz: interdire la sélection d'un item de la liste déroulante si il est déjà présent sur une des listes déjà renseignée...
En supposant que les listes déroulantes soient situées en B2; C2 et D2 et que les données de ces listes proviennent d'une zone nommée Zn. (par les menus, pour la plage B2:D2, Données/Validation.../Options/Autoriser: Liste/Source: =Zn)
Dans la feuille de code de l'onglet concerné:
Private Sub Worksheet_Change(ByVal c As Range) If c.Address = "$B$2" And Not IsEmpty(c) Then _ If c = [C2] Or c = [D2] Then msG If c.Address = "$C$2" And Not IsEmpty(c) Then _ If c = [B2] Or c = [D2] Then msG If c.Address = "$D$2" And Not IsEmpty(c) Then _ If c = [B2] Or c = [C2] Then msG End Sub
Private Sub msG() inF = MsgBox("Choix non-autorisé !", vbInformation, "Désolé...") ActiveCell.ClearContents End Sub
ChrisV
"Octave" a écrit dans le message de news:ccke31$c0$
Bonjour,
Je souhaiterais vous poser la question suivante :
Sur une feuille, j'ai plusieurs listes déroulantes qui font référence aux mêmes données. Je souhaiterais que lorsqu'une de ces données est sélectionnée dans une liste elle n'apparaisse plus dans les autres. Comment puis-je procéder ?