OVH Cloud OVH Cloud

Cellule

4 réponses
Avatar
Denys
Bonjour à tous,

Sur une feuille Excel, l'usager doit inscrire un X dans l'une des trois
cellules suivantes: B9 ou B10 ou B11.

Je souhaiterais que si l'usager entre un X dans une cellule, que le contenu
des 2 autres devienne vide. Auttrement dit, si l'usager entre un X dans B9 et
qu'ensuite il en entre un dans B10, que le contenu de B9 s'efface
automatiquement, un peu comme les boutons d'option...

Z'auriez une idée?

Merci pour votre temps

Denys

4 réponses

Avatar
Pierre Fauconnier
Bonjour

1. Pour être certain que la personne va entrer un X, il faut peut-être
utiliser les restrictions via la menu "Données/Validation".
On peut également déterminer que dès qu'il y a une entrée dans une de ces
trois cellules, on la remplace par X et on vide les deux autres.

Voici, avec ma deuxième proposition, un code qui devrait fonctionner. A
placer dans le module de la feuille concernée

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Select Case Target.Address
Case "$B$9"
Target = "X"
Range("B10").ClearContents
Range("B11").ClearContents
Case "$B$10"
Target = "X"
Range("B9").ClearContents
Range("B11").ClearContents
Case "$B$11"
Target = "X"
Range("B9").ClearContents
Range("B10").ClearContents
End Select
Application.EnableEvents = True
End Sub


Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

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

Bonjour à tous,

Sur une feuille Excel, l'usager doit inscrire un X dans l'une des trois
cellules suivantes: B9 ou B10 ou B11.

Je souhaiterais que si l'usager entre un X dans une cellule, que le
contenu
des 2 autres devienne vide. Auttrement dit, si l'usager entre un X dans B9
et
qu'ensuite il en entre un dans B10, que le contenu de B9 s'efface
automatiquement, un peu comme les boutons d'option...

Z'auriez une idée?

Merci pour votre temps

Denys


Avatar
Philippe.R
Bonsoir Denys,
Une variante à la proposition de Pierre :

Dans 1 module standard :

Sub unde3()
For Each c In Range("b9:b11")
If ActiveCell <> "" Then
z = ActiveCell.Row
If c <> "" And z = 9 Then
Range("b10:b11").ClearContents
ElseIf c <> "" And z = 10 Then
Union(Range("b9"), Range("b11")).ClearContents
ElseIf c <> "" And z = 11 Then
Range("b9:b10").ClearContents
End If
End If
Next c
End Sub

et dans le module de feuille :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
unde3
End Sub

--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

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

Bonjour à tous,

Sur une feuille Excel, l'usager doit inscrire un X dans l'une des trois
cellules suivantes: B9 ou B10 ou B11.

Je souhaiterais que si l'usager entre un X dans une cellule, que le contenu
des 2 autres devienne vide. Auttrement dit, si l'usager entre un X dans B9 et
qu'ensuite il en entre un dans B10, que le contenu de B9 s'efface
automatiquement, un peu comme les boutons d'option...

Z'auriez une idée?

Merci pour votre temps

Denys


Avatar
Denys
Bonjour Pierre,

Merci beaucoup pour ta réponse. Cela fonctionne très bien. J'avais pensé à
restreindre à X les caractères acceptables avec Data Validation.

Tu m'as aidé à fignoler le reste.

Merci et bonne journée

Denys


Bonjour

1. Pour être certain que la personne va entrer un X, il faut peut-être
utiliser les restrictions via la menu "Données/Validation".
On peut également déterminer que dès qu'il y a une entrée dans une de ces
trois cellules, on la remplace par X et on vide les deux autres.

Voici, avec ma deuxième proposition, un code qui devrait fonctionner. A
placer dans le module de la feuille concernée

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Select Case Target.Address
Case "$B$9"
Target = "X"
Range("B10").ClearContents
Range("B11").ClearContents
Case "$B$10"
Target = "X"
Range("B9").ClearContents
Range("B11").ClearContents
Case "$B$11"
Target = "X"
Range("B9").ClearContents
Range("B10").ClearContents
End Select
Application.EnableEvents = True
End Sub


Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

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

Bonjour à tous,

Sur une feuille Excel, l'usager doit inscrire un X dans l'une des trois
cellules suivantes: B9 ou B10 ou B11.

Je souhaiterais que si l'usager entre un X dans une cellule, que le
contenu
des 2 autres devienne vide. Auttrement dit, si l'usager entre un X dans B9
et
qu'ensuite il en entre un dans B10, que le contenu de B9 s'efface
automatiquement, un peu comme les boutons d'option...

Z'auriez une idée?

Merci pour votre temps

Denys







Avatar
Denys
Bonsoir Philippe,

Merci beaucoup à toi aussi. Je vais conserver précieusement ta réponse, car
elle me sera sûrement utile plus tard.

Bonne soirée

Denys


Bonsoir Denys,
Une variante à la proposition de Pierre :

Dans 1 module standard :

Sub unde3()
For Each c In Range("b9:b11")
If ActiveCell <> "" Then
z = ActiveCell.Row
If c <> "" And z = 9 Then
Range("b10:b11").ClearContents
ElseIf c <> "" And z = 10 Then
Union(Range("b9"), Range("b11")).ClearContents
ElseIf c <> "" And z = 11 Then
Range("b9:b10").ClearContents
End If
End If
Next c
End Sub

et dans le module de feuille :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
unde3
End Sub

--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

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

Bonjour à tous,

Sur une feuille Excel, l'usager doit inscrire un X dans l'une des trois
cellules suivantes: B9 ou B10 ou B11.

Je souhaiterais que si l'usager entre un X dans une cellule, que le contenu
des 2 autres devienne vide. Auttrement dit, si l'usager entre un X dans B9 et
qu'ensuite il en entre un dans B10, que le contenu de B9 s'efface
automatiquement, un peu comme les boutons d'option...

Z'auriez une idée?

Merci pour votre temps

Denys