Comment mettre un "1" dans une cellule sur un simple clic

Bonsoir :)

Savez-vous comment mettre un "1" dans une cellule sur un simple clic dans celle-ci et enlever le "1" si on reclic dessus ?

MErci

Bien cordialement :)

Bonjour,

Avec un double clic

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim temp As Variant
    temp = Array("1", "")
    If Not Application.Intersect(Target, Me.Range("A1:Z100")) Is Nothing Then
        If Target.Value = "1" Then
            Target.Value = ""
        Else
            Target.Value = "1"
        End If
        Cancel = True ' Empêche l'édition de la cellule
    End If
End Sub

Slts

Merci beaucoup mais je n'ai pas du tt l'habitude d'intégrer des lignes de commandes.

Comment fait-on ?

MErci

J'ai réussi mais comment fait-on pour mettre le double clic "1 uniquement sur certaines cellules car ça me le fait partout

Merci :)

Bonjour,

en fait il faudrait mettre 1 (numérique) et non "1" (chaine de caractère)
eric

Bonsoir

Voir partie en rouge

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim temp As Variant
temp = Array("1", "")
If Not Application.Intersect(Target, Me.Range("A1,B1:C10,E1,H1:K20")) Is Nothing Then
If Target.Value = "1" Then
Target.Value = ""
Else
Target.Value = "1"
End If
Cancel = True ' Empêche l'édition de la cellule
End If
End Sub

Slts

Ou par simple clic (exemple ici pour la cellule B4) ;

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(ActiveCell, Range("B4")) Is Nothing Then
    If Target.Value = "1" Then
            Target.Value = ""
        Else
            Target.Value = "1"
        End If
    End If
End Sub

MErci beaucoup, c top :))))))

Bonjour,

Je réitère, c'est 1 et non "1".
Des fonctions comme Somme() n'additionneront jamais des "1"

@Doux Rêveur : ça plante si sélection multiple démarrant en B4...
eric

Bonjour,

Toujours avec double clic valeur numérique

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim temp As Variant
    temp = Array(1, vbNullString)

    If Not Application.Intersect(Target, Me.Range("A1,B1:C10,E1,H1:K20")) Is Nothing Then
        If Target.Value = 1 Then
            Target.Value = vbNullString
        Else
            Target.Value = 1
        End If
        Cancel = True ' Empêche l'édition de la cellule
    End If
End Sub

Slts

Bonjour,

Je réitère, c'est 1 et non "1".
Des fonctions comme Somme() n'additionneront jamais des "1"

@Doux Rêveur : ça plante si sélection multiple démarrant en B4...
eric

Ok, en fait ça marche si on ne fait pas de sélection incluant une cellule de la plage (ou d'une des plages) du code.

Par contre SOMME fonctionne bien avec "1".

Donc ça ne fonctionne pas...

Ah oui ?

image

et combien même ça marcherait, un nombre doit être en numérique.
Ne jamais faire confiance ni se reposer à la conversion automatique d'excel.
Seule exception, une référence qui doit être en texte tout le temps.
eric

Chez moi le 1 affiché en B4 est à droite (cellule formatée en standard) et je peux l'intégrer dans une somme qui en tient bien compte.

Un nombre doit être inscrit en numérique.
Et là ça peut se faire sans rien ajouter, et même en simplifiant la formule.
Tu t'obstines à défendre une cause indéfendable, même avec la preuve sous les yeux que ça génère des anomalies.
Rêve si tu veux, mais n'en entraine pas d'autres dans des cauchemars
J'arrête là ne pouvant t'expliquer plus...

Je te sens bien excessif pour pas grand chose, 1ère fois que je vois ça sur ce forum.

J'ai aussi l'exemple sous les yeux que avec ou sans guillemets, le résultat est le même, ça dépend peut-être des versions d'Excel. Tu devrais peut-être me demander pourquoi ça marche chez moi alors que tu affirmais plus tôt ;

Des fonctions comme Somme() n'additionneront jamais des "1"

Et pourtant ;

excel 1 si clic

Avec ce code ;

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(ActiveCell, Range("B4:B7, D4")) Is Nothing Then
    If Target.Value = "1" Then
            Target.Value = ""
        Else
            Target.Value = "1"
        End If
    End If
End Sub

Ce n'est ni rêve ni cauchemar, juste la réalité.

Cela dit, je n'ai ni affirmé ni cherché à savoir si mon code était l'idéal pour inclure le 1 dans un calcul, et pour cause, vodoraix ne l'a pas demandé.

Je ne suis pas excessif, c'est une erreur de débutant à signaler, c'est tout.
Il y a une énorme différence entre un nombre numérique et un sous forme de chaine. Peut-être la moitié des demandes sont dues à ça.

Dans ton tableau ce sont des 1 numériques et non des chaines (apprend à les distinguer), le résultat est forcément correct.
VBA l'a converti mais il n'est pas fiable, il ne faut pas lui faire confiance pour ça.
Inscrit ="1"' dans une cellule et tu verras ce que ça fait si vba met une chaine.
Maintenant tu en fais ce que tu veux, je m'en balek

Quelle élégance ...

Tu te lances dans un débat et fais des extrapolations pour rien alors que j'ai simplement répondu à ton affirmation sur base de ce que je voyais sur mon fichier. Pour le reste on est sûrement d'accord mais là n'était pas la question, c'est toi qui as mis sur le tapis cette histoire de somme.

Rechercher des sujets similaires à "comment mettre simple clic"