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...
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
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
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 (pierre.fauconnier@nospam.nospam)
"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" <Denys@discussions.microsoft.com> a écrit dans le message de news:
59D3396C-7B16-4052-9367-C95950B8912A@microsoft.com...
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...
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
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
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" <Denys@discussions.microsoft.com> a écrit dans le message de news:
59D3396C-7B16-4052-9367-C95950B8912A@microsoft.com...
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...
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
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
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 (pierre.fauconnier@nospam.nospam)
"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" <Denys@discussions.microsoft.com> a écrit dans le message de news:
59D3396C-7B16-4052-9367-C95950B8912A@microsoft.com...
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...
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
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
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" <Denys@discussions.microsoft.com> a écrit dans le message de news:
59D3396C-7B16-4052-9367-C95950B8912A@microsoft.com...
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...
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...