Changement de valeur au clic

the_worms

XLDnaute Nouveau
Bonjour à tous,

J'ai à besoin nouveau de votre aide pour le code VBA que j'utilise.
Je vous explique, j'utilise un code qui génère des cases vides dans une plage lorsqu'on double clic sur la case elle se remplie (grâce à l'utilisation de caractère Wingdings.

Je voudrais effectuer exactement la même manipulation mais par un simple clic-gauche.

ci-joint voilà le code que j'utilise actuellement :
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not (Intersect(Target, Range("plage")) Is Nothing) Then
Target.Font.Name = "Wingdings"
Target.HorizontalAlignment = xlCenter
Cancel = True
Target.Value = inverse(Target.Value)
End If
End Sub

Est-ce que quelqu'un à une solution ?

Merci d'avance pour votre aide =)
Est-ce que quelqu'un à une solution ,
 

the_worms

XLDnaute Nouveau
Re : Changement de valeur au clic

Merci Pierrot,
Mais ça marche en créant des bugs.
Les problèmes qui surviennent :
1°/ Lorsque je sélectionne tout mon tableau ça change les autres polices en Wingdings.
2°/ Lorsque dans le coup un utilisateur fait un double clic sur la case, il peut modifier le caractère.
 

the_worms

XLDnaute Nouveau
Re : Changement de valeur au clic

Merci Hippolite,
La solution 2 fonctionne très bien.

Et concernant mon autre problème, existe-t'il une solution qui change la valeur à chaque clic.
Car une fois que j'ai cliqué une case, je ne peux pas la re-sélectionner de suite.

Je ne connais pas encore assez le langage VBA, mais je ne pourrai pas utiliser une fonction If Else ? afin de changer la valeur à chaque clic ?

Merci encore pour votre aide =)

A+
 

the_worms

XLDnaute Nouveau
Re : Changement de valeur au clic

Oups, j'ai inséré la ligne dans le code de ma feuille VBA : Général => Déclarations.
Nomdelafeuille.Protect UserInterfaceOnly:=True.

Et cela me renvoie l'erreur suivante :
Erreur de compilation: Instruction incorrecte à l'extérieur d'une procédure.
Et il me surligne le terme : True.

Une idée du problème ?

Merci encore pour ton aide Hippolite.
 

Hippolite

XLDnaute Accro
Re : Changement de valeur au clic

Re,
Et concernant mon autre problème, existe-t'il une solution qui change la valeur à chaque clic.
Car une fois que j'ai cliqué une case, je ne peux pas la re-sélectionner de suite.
Il faut rester sur le clic droit car la macro événementielle BeforeRightClick fonctionnera plusieurs fois de suite.
La macro événementielle SelectionChange fonctionne avec le clic gauche mais nécessite de changer de sélection et ne peut donc pas être * répétée sur la même cellule.
A+

Ajout : * on peut contourner en sélectionnant une autre cellule en fin de sub
 
Dernière édition:

the_worms

XLDnaute Nouveau
Re : Changement de valeur au clic

Oui,
Je viens de faire un document simplifié.
Petite précision sur le fichier, il faudrait que je puisse faire la manipulation sur la feuille 1 et 2 du fichier.
Merci d'avance pour ton aide.

PS : Dans le coup, j'ai enlevé ta dernière ligne de commande.
 

Pièces jointes

  • Classeur2.xlsm
    19.4 KB · Affichages: 82
  • Classeur2.xlsm
    19.4 KB · Affichages: 76
  • Classeur2.xlsm
    19.4 KB · Affichages: 70

Hippolite

XLDnaute Accro
Re : Changement de valeur au clic

Re,
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not (Intersect(Target, Range("case")) Is Nothing) Then
    Feuil1.Protect UserInterfaceOnly:=True
    Target.Font.Name = "Wingdings"
    Target.HorizontalAlignment = xlCenter
    Cancel = True
    Target.Value = inverse(Target.Value)
    Range("E1").Select
End If
End Sub
J'ai utilisé le nom vba de la feuille (celui de l'explorateur de projet) pour être indépendant d'un renommage de la feuille.
J'ai ajouté une sélection à la fin pour pouvoir cliquer plusieurs fois de suite
A+
 

the_worms

XLDnaute Nouveau
Re : Changement de valeur au clic

J'ai parlé trop vite :/

Le système fonctionne sans problème.
Par contre, si je sélectionne plusieurs cases, lignes ou colonnes (en prenant au moins une case à cocher wingdings ça modifie la police des autres colonnes en Wingdings.

Cela peut-il se corriger ?

Merci d'avance :$
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 087
Membres
103 461
dernier inscrit
dams94