OVH Cloud OVH Cloud

Restriction d'utilisation de deux listes déroulantes

6 réponses
Avatar
Nadia.b
Hello à vous tous,
sur deux cellules j'ai dans chacune d'elle une liste déroulante différente.
Je désire interdire l'utilisation de l'une d'elle si l'autre et utilisée.
Qui aurait une solution ??

Merci à vous tous.
Nadia

6 réponses

Avatar
anonymousA
Bonjour,

essaie de mieux décrire ce que tu souhaites, car je ne comprends pas
"intredire l"une si l'autre est utilisée". Celà veut-il dire que si il y a
une valeur dans la cellule X alors , on ne peut saisir une valeur en cellule
Y ensuite ?

A+


Hello à vous tous,
sur deux cellules j'ai dans chacune d'elle une liste déroulante différente.
Je désire interdire l'utilisation de l'une d'elle si l'autre et utilisée.
Qui aurait une solution ??

Merci à vous tous.
Nadia






Avatar
Nadia.b
Bonjour anonymousA,
Tu as parfaitement compris la chose, effectivement quand la cellule A1
possède une donnée l'utilisation de la cellule A2 devrait être interdite. Le
contraire aussi. Si A2 possède une donnée, l'utilisation de la cellule A1
est interdite.
Aurais-tu une solution?

Désolée de ne pas m'être fais comprendre précédemment.
Nadia


"anonymousA" a écrit dans le message
de news:
Bonjour,

essaie de mieux décrire ce que tu souhaites, car je ne comprends pas
"intredire l"une si l'autre est utilisée". Celà veut-il dire que si il y a
une valeur dans la cellule X alors , on ne peut saisir une valeur en
cellule

Y ensuite ?

A+


Hello à vous tous,
sur deux cellules j'ai dans chacune d'elle une liste déroulante
différente.


Je désire interdire l'utilisation de l'une d'elle si l'autre et
utilisée.


Qui aurait une solution ??

Merci à vous tous.
Nadia








Avatar
anonymousA
Dans l'exemple suivant, on suppose que les 2 cellules concernées sont en B1
et C1.SI l'une ou l'autre est non vide, alors on ne peut inscrire quelque
chose dans la cellule complémentaire et on est renvoyé en cellulle D2. A
adapter bien sur. Dans cet exemple, il n'y a pas d'obligation absolue
d'écrire Apllication.enableventsúlse mais c'est pour traiter le cas général.
Les procédures suivantes sont à mettre dans le module de feuille qui abrite
les cellules.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Select Case Target.Cells(1).Address(0, 0)

Case "B1"
If testcell(Cells(1, 3)) = True Then Exit Sub

Case "C1"
If testcell(Cells(1, 2)) = True Then Exit Sub


End Select

End Sub

Function testcell(cellsource) As Boolean

If Not IsEmpty(cellsource) Then
MsgBox "pas de saisie possible"
Application.EnableEvents = False
Cells(1, 4).Activate
Application.EnableEvents = True
End If

End Function

A+



Bonjour anonymousA,
Tu as parfaitement compris la chose, effectivement quand la cellule A1
possède une donnée l'utilisation de la cellule A2 devrait être interdite. Le
contraire aussi. Si A2 possède une donnée, l'utilisation de la cellule A1
est interdite.
Aurais-tu une solution?

Désolée de ne pas m'être fais comprendre précédemment.
Nadia


"anonymousA" a écrit dans le message
de news:
Bonjour,

essaie de mieux décrire ce que tu souhaites, car je ne comprends pas
"intredire l"une si l'autre est utilisée". Celà veut-il dire que si il y a
une valeur dans la cellule X alors , on ne peut saisir une valeur en
cellule

Y ensuite ?

A+


Hello à vous tous,
sur deux cellules j'ai dans chacune d'elle une liste déroulante
différente.


Je désire interdire l'utilisation de l'une d'elle si l'autre et
utilisée.


Qui aurait une solution ??

Merci à vous tous.
Nadia













Avatar
anonymousA
comme ca c'est mieux. De l'ininteret de répondre trop vite

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Select Case Target.Cells(1).Address(0, 0)

Case "B1"
testcell Cells(1, 3)

Case "C1"
testcell Cells(1, 2)

End Select

End Sub

Sub testcell(cellsource)

If Not IsEmpty(cellsource) Then
MsgBox "pas de saisie possible"
Application.EnableEvents = False
Cells(1, 4).Activate
Application.EnableEvents = True
End If

End Sub

A+



Dans l'exemple suivant, on suppose que les 2 cellules concernées sont en B1
et C1.SI l'une ou l'autre est non vide, alors on ne peut inscrire quelque
chose dans la cellule complémentaire et on est renvoyé en cellulle D2. A
adapter bien sur. Dans cet exemple, il n'y a pas d'obligation absolue
d'écrire Apllication.enableventsúlse mais c'est pour traiter le cas général.
Les procédures suivantes sont à mettre dans le module de feuille qui abrite
les cellules.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Select Case Target.Cells(1).Address(0, 0)

Case "B1"
If testcell(Cells(1, 3)) = True Then Exit Sub

Case "C1"
If testcell(Cells(1, 2)) = True Then Exit Sub


End Select

End Sub

Function testcell(cellsource) As Boolean

If Not IsEmpty(cellsource) Then
MsgBox "pas de saisie possible"
Application.EnableEvents = False
Cells(1, 4).Activate
Application.EnableEvents = True
End If

End Function

A+




Bonjour anonymousA,
Tu as parfaitement compris la chose, effectivement quand la cellule A1
possède une donnée l'utilisation de la cellule A2 devrait être interdite. Le
contraire aussi. Si A2 possède une donnée, l'utilisation de la cellule A1
est interdite.
Aurais-tu une solution?

Désolée de ne pas m'être fais comprendre précédemment.
Nadia


"anonymousA" a écrit dans le message
de news:

Bonjour,

essaie de mieux décrire ce que tu souhaites, car je ne comprends pas
"intredire l"une si l'autre est utilisée". Celà veut-il dire que si il y a
une valeur dans la cellule X alors , on ne peut saisir une valeur en


cellule

Y ensuite ?

A+



Hello à vous tous,
sur deux cellules j'ai dans chacune d'elle une liste déroulante



différente.

Je désire interdire l'utilisation de l'une d'elle si l'autre et



utilisée.

Qui aurait une solution ??

Merci à vous tous.
Nadia















Avatar
Nadia.b
Salut anonymousA,
Je dois faire une erreur à quelque part, car je n'arrive pas à faire
fonctionner ces quelques lignes que tu as bien voulu mettre à ma disposition
pour les cellules incriminées. Qui sont E5 et E6.
Je l'ai inssérée dans la feuil2, dans un module, dans un module de
classe, chaque fois séparément et rien n'a l'air de fonctionner.
Merci de ton aide.
Nadia


"anonymousA" a écrit dans le message de
news:430ef5f3$0$5388$
comme ca c'est mieux. De intérêt de répondre trop vite

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Select Case Target.Cells(1).Address(0, 0)

Case "B1"
testcell Cells(1, 3)

Case "C1"
testcell Cells(1, 2)

End Select

End Sub

Sub testcell(cellsource)

If Not IsEmpty(cellsource) Then
MsgBox "pas de saisie possible"
Application.EnableEvents = False
Cells(1, 4).Activate
Application.EnableEvents = True
End If

End Sub

A+



Dans l'exemple suivant, on suppose que les 2 cellules concernées sont en
B1


et C1.SI l'une ou l'autre est non vide, alors on ne peut inscrire
quelque


chose dans la cellule complémentaire et on est renvoyé en cellulle D2. A
adapter bien sur. Dans cet exemple, il n'y a pas d'obligation absolue
d'écrire Apllication.enableventsúlse mais c'est pour traiter le cas
général.


Les procédures suivantes sont à mettre dans le module de feuille qui
abrite


les cellules.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Select Case Target.Cells(1).Address(0, 0)

Case "B1"
If testcell(Cells(1, 3)) = True Then Exit Sub

Case "C1"
If testcell(Cells(1, 2)) = True Then Exit Sub


End Select

End Sub

Function testcell(cellsource) As Boolean

If Not IsEmpty(cellsource) Then
MsgBox "pas de saisie possible"
Application.EnableEvents = False
Cells(1, 4).Activate
Application.EnableEvents = True
End If

End Function

A+




Bonjour anonymousA,
Tu as parfaitement compris la chose, effectivement quand la cellule A1
possède une donnée l'utilisation de la cellule A2 devrait être
interdite. Le



contraire aussi. Si A2 possède une donnée, l'utilisation de la cellule
A1



est interdite.
Aurais-tu une solution?

Désolée de ne pas m'être fais comprendre précédemment.
Nadia


"anonymousA" a écrit dans le
message



de news:

Bonjour,

essaie de mieux décrire ce que tu souhaites, car je ne comprends pas
"intredire l"une si l'autre est utilisée". Celà veut-il dire que si il
y a




une valeur dans la cellule X alors , on ne peut saisir une valeur en


cellule

Y ensuite ?

A+



Hello à vous tous,
sur deux cellules j'ai dans chacune d'elle une liste déroulante



différente.

Je désire interdire l'utilisation de l'une d'elle si l'autre et



utilisée.

Qui aurait une solution ??

Merci à vous tous.
Nadia

















Avatar
Nadia.b
J'ai trouvé une solution simple à insérer dans la boite de dialogue de la
liste de validation.
Pour la cellule E5:
SI(E6=0;Liste1;0)
Pour la cellule E6
SI(E5=0;Liste2;0)

Merci encore pour avoir essayé de m'aider.
Salutations
Nadia

"anonymousA" a écrit dans le message de
news:430ef5f3$0$5388$
comme ca c'est mieux. De l'ininteret de répondre trop vite

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Select Case Target.Cells(1).Address(0, 0)

Case "B1"
testcell Cells(1, 3)

Case "C1"
testcell Cells(1, 2)

End Select

End Sub

Sub testcell(cellsource)

If Not IsEmpty(cellsource) Then
MsgBox "pas de saisie possible"
Application.EnableEvents = False
Cells(1, 4).Activate
Application.EnableEvents = True
End If

End Sub

A+



Dans l'exemple suivant, on suppose que les 2 cellules concernées sont en
B1


et C1.SI l'une ou l'autre est non vide, alors on ne peut inscrire
quelque


chose dans la cellule complémentaire et on est renvoyé en cellulle D2. A
adapter bien sur. Dans cet exemple, il n'y a pas d'obligation absolue
d'écrire Apllication.enableventsúlse mais c'est pour traiter le cas
général.


Les procédures suivantes sont à mettre dans le module de feuille qui
abrite


les cellules.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Select Case Target.Cells(1).Address(0, 0)

Case "B1"
If testcell(Cells(1, 3)) = True Then Exit Sub

Case "C1"
If testcell(Cells(1, 2)) = True Then Exit Sub


End Select

End Sub

Function testcell(cellsource) As Boolean

If Not IsEmpty(cellsource) Then
MsgBox "pas de saisie possible"
Application.EnableEvents = False
Cells(1, 4).Activate
Application.EnableEvents = True
End If

End Function

A+




Bonjour anonymousA,
Tu as parfaitement compris la chose, effectivement quand la cellule A1
possède une donnée l'utilisation de la cellule A2 devrait être
interdite. Le



contraire aussi. Si A2 possède une donnée, l'utilisation de la cellule
A1



est interdite.
Aurais-tu une solution?

Désolée de ne pas m'être fais comprendre précédemment.
Nadia


"anonymousA" a écrit dans le
message



de news:

Bonjour,

essaie de mieux décrire ce que tu souhaites, car je ne comprends pas
"intredire l"une si l'autre est utilisée". Celà veut-il dire que si il
y a




une valeur dans la cellule X alors , on ne peut saisir une valeur en


cellule

Y ensuite ?

A+



Hello à vous tous,
sur deux cellules j'ai dans chacune d'elle une liste déroulante



différente.

Je désire interdire l'utilisation de l'une d'elle si l'autre et



utilisée.

Qui aurait une solution ??

Merci à vous tous.
Nadia