Complément Macro

Résolu/Fermé
Zeni - 21 janv. 2022 à 10:54
 Zeni - 24 janv. 2022 à 16:57
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

Configuration: Windows / Chrome 97.0.4692.71
A voir également:

4 réponses

eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 236
21 janv. 2022 à 19:29
Dans 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
1
Superbe, c'est exactement ce que je voulais. Merci infiniment :-)
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 236 > Zeni
22 janv. 2022 à 19:38
Très bien.
Au passage tu peux enlever
And Target.Count = 1 
auquel je n'avais pas prêté attention.
Sur double-clic ça ne peut être autre chose que 1
1
Bonjour Eriiic,

J'avais testé de A2:A25 (colonne où il ne doit pas y avoir la possibilité de mettre plusieurs croix.

Mais du coup de B5 à B8 je n'arrive pas à mettre plusieurs croix et à double cliquer pour enlever :-. ?
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 236 > Zeni
24 janv. 2022 à 11:27
Bonjour,

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
1
Zeni > eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024
24 janv. 2022 à 16:57
Oui navrée :-) Merci infiniment pour ton aide, ça fonctionne parfaitement.

Belle journée.
0
via55 Messages postés 14490 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 23 octobre 2024 2 734
21 janv. 2022 à 13:55
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
0
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.
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 236
21 janv. 2022 à 15:31
Bonjour,

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
0
Oui si la personne se trompe, il faut pouvoir enlever la croix pour la mettre dans un autre cellule. J'espère que c'est plus clair :-)
0
via55 Messages postés 14490 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 23 octobre 2024 2 734
21 janv. 2022 à 15:48
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
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 236
21 janv. 2022 à 16:37
Certes, mais 'une seule croix' peut se traiter de 2 façons.
Et difficile de dire laquelle depuis son code.
D'ou ma demande de compléments.
0