Complément Macro
Résolu
Bonjour à toutes et à tous,
Je souhaiterais rajouter dans la macro ci-dessous qu'il ne peut y avoir qu'une seule croix de la cellule A2 à 25. Quelqu'un peut-il m'aider :-)
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("B5:B8, A2:A25")) Is Nothing And Target.Count = 1 Then
If Target.Value = "" Then
Target.Value = "X"
Else
Target.Value = Empty
End If
End If
End Sub
Je vous remercie :D
Je souhaiterais rajouter dans la macro ci-dessous qu'il ne peut y avoir qu'une seule croix de la cellule A2 à 25. Quelqu'un peut-il m'aider :-)
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("B5:B8, A2:A25")) Is Nothing And Target.Count = 1 Then
If Target.Value = "" Then
Target.Value = "X"
Else
Target.Value = Empty
End If
End If
End Sub
Je vous remercie :D
Configuration: Windows / Chrome 97.0.4692.71
4 réponses
-
Bonjour Zeni
Comme au moment d'entrer une X la plage A2:A25 doit être vide on peut tester ce vide avec NBVAL
Tu n'as alors qu'une ligne à modifier :
If Target.Value = "" And WorksheetFunction.CountA(Range("A2:A25")) = 0 Then
Cdlmnt
Via
-
Bonjour Via55,
Merci beaucoup pour ta solution, ça fonctionne très bien. :-D Par contre est-il possible que si je me trompe en double cliquant je puisse enlever la croix pour la réinsérer au bonne endroit :-) Car du moment que je mets la croix, si je double clique pour l'enlever, ça ne fonctionne plus.
-
-
ContributeurBonjour,
il manque le fonctionnement voulu. Bloquer ou remplacer ???
Si un nouveau X doit remplacer l'ancien, le plus simple est de vider la plage avant d'ajouter le nouveau.
eric
-
Bonjour eric
D'après la macro originelle fournie par le demandeur un double-clic sur une cellule vide y inscrit un X, un double-clic sur une cellule remplie la vide, je ne modifie rien à cela
-
ContributeurDans ce cas ça simplifie :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim coche As Boolean If Not Intersect(Target, Range("B5:B8, A2:A25")) Is Nothing And Target.Count = 1 Then Cancel = True coche = Target.Value <> "" Range("B5:B8, A2:A25").ClearContents If Not coche Then Target.Value = "X" End If End Sub
j'ai ajouté pour ôter la coche avec le double-clic
eric
-
-
Contributeur@ZeniTrès bien.
Au passage tu peux enleverAnd Target.Count = 1
auquel je n'avais pas prêté attention.
Sur double-clic ça ne peut être autre chose que 1 -
-
Contributeur@ZeniBonjour,
comment le deviner ?Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim coche As Boolean If Not Intersect(Target, Range("B5:B8, A2:A25")) Is Nothing And Target.Count = 1 Then Cancel = True coche = Target.Value <> "" If Target.Column = 1 Then Range("A2:A25").ClearContents Target.ClearContents If Not coche Then Target.Value = "X" End If End Sub
eric -
-