besoin d'aide sur une macro

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

alfazoulou

XLDnaute Occasionnel
Bonjour le forum
j'ai un petit soucis que je suis sur vous allez pouvoir résoudre trés rapidement.
Ca doit etre basique mais j'ai un trou, excelnaute trés occasionnel oblige.
Voilà j'ai 4 cellules contigues E38,F38,G38 et F38
je voudrais me servir de ses cellules comme cases à cocher, si l'une d'entre elles est marquée d'un x alors les autres se mette à vide, et ainsi de suite.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Range("E38").Text = "x" Then
Range("f38").Value = " "
Range("g38").Value = " "
Range("h38").Value = " "
End If
If Range("f38").Text = "x" Then
Range("e38").Value = " "
Range("g38").Value = " "
Range("h38").Value = " "
End If
If Range("g38").Text = "x" Then
Range("e38").Value = " "
Range("f38").Value = " "
Range("h38").Value = " "
End If
If Range("h38").Text = "x" Then
Range("e38").Value = " "
Range("g38").Value = " "
Range("f38").Value = " "
End If

j'ai fait ce code mais ça ne fonctionne pas, j'imagine que la solution doit résider dans un "For each cell in range..." Non?
merci pour vos réponses
 
Re : besoin d'aide sur une macro

Bonsoir alfazoulou,

essaie l'événement Change comme ceci:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, [E38:H38]) Is Nothing Then
  [E38:H38].Value = ""
  Target.Value = "x"
End If
Application.EnableEvents = True
End Sub

Bonne soirée.
 
Re : besoin d'aide sur une macro

Je relance ce fil car je me suis apperçu d'un problème,
à savoir:
Quand je sélectionne deux cellules elles se cochent toutes deux or il ne peux y avoir q'une cellule cochée.
Meme problème si je sélectionne la ligne complete.
que faut'il ajouter à mon code SVP ?

Application.EnableEvents = False
If Not Intersect(Target, [E42:H42]) Is Nothing Then
[E42:H42].Value = ""
Target.Value = "x"

ci joint le fichier.
 

Pièces jointes

Re : besoin d'aide sur une macro

Bonjour AZ 🙂,
J'ai un peu revu le code pour l'adapter à tes besoins (je n'ai pas les mêmes habitudes d'écriture que Skoobi, mais ça revient au même). Je suis parti du principe de quitter si on n'est pas dans la zone, ça t'éviteras la ribambelle de tests pour chaque ligne.
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Count <> 1 Then Exit Sub
If Intersect(Target, Range("E42:H44")) Is Nothing Then Exit Sub
If Target.Value = "x" Then
    Target = ""
    Cancel = True
ElseIf Target.Value = "" Then
    Target = "x"
    Cancel = True
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count <> 1 Then Exit Sub
If Intersect(Target, Range("E42:H44")) Is Nothing Then Exit Sub
If Target.Value = "x" Then
    Target = ""
    Exit Sub
End If
Range("E" & Target.Row & ":H" & Target.Row).Value = ""
Target = "x"
End Sub
pour décocher en recliquant sur la cellule, le problème est que si c'est celle que tu viens de sélectionner, le clic ne produit pas d'événement SelectionChange, je suis donc passé par un DoubleClick pour effacer/mettre la croix sans changer de sélection.
Bonne journée 😎
Ajout : Salut Skoobi
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
775
Réponses
3
Affichages
926
Réponses
3
Affichages
883
Réponses
0
Affichages
663
Retour