• Initiateur de la discussion Initiateur de la discussion Yann71
  • Date de début Date de début

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 !

Yann71

XLDnaute Occasionnel
Bonjour, je patauge un peu. Qui pourrait m'aider à trouver le code VBA qui servirait, à chaque clic sur la même cellule elle s'incrémente. Premier clic affiche 1, deuxième clic affiche 2 et troisième clic efface le contenu.
Merci d'avance
 
Bonjour Yann, bonjour le forum,

Au DOUBLE clic :

VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Value = "" Then Target.Value = 1: GoTo fin
If Target.Value = 1 Then Target.Value = 2: GoTo fin
If Target.Value = 2 Then Target.Value = ""
fin:
Cancel = True
End Sub
 
Bonjour
A tester avec double clic
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  Dim Nb()
  Nb = Array(1, 2, "")
  On Error GoTo fin
  Target.Value = Nb(Application.WorksheetFunction.Match(Target.Value, Nb, 0) Mod 3)
  Cancel = True
  Exit Sub
fin:
  Target.Value = Nb(0)
  Cancel = True
End Sub

Edit: Bonjour Robert
 
Merci pour les explications. Est-ce qu'il est possible de réaliser dans la même optique, au lieus de cliquer 2x pour avoir 2 de pouvoir simplifier la saisie qu'à chaque clique la cellule s'incrémente. Je m'explique 1 clique=1 puis cliquer une deuxième fois et non 2x pour afficher 2 pareille pour 3 et vider la cellule
 
Bonjour Yann71, M12, Robert, Philippe, Bernard,

Pour le fun avec un Label auxiliaire :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Interior.ColorIndex <> 6 Or Target.Count > 1 Then Label1.Visible = False: Exit Sub
Target = Choose(Target Mod 3 + 1, 1, 2, Empty)
With Label1
    .Caption = Target
    .Top = Target.Top
    .Left = Target.Left
    .Width = Target.Width
    .Height = Target.Height
    .Visible = True
End With
End Sub

Private Sub Label1_Click()
Worksheet_SelectionChange ActiveCell
End Sub
Fichier joint.

A+
 

Pièces jointes

Bonjour tlm. En premier lieu je vous remercie pour tous les efforts fournis pour trouver une solution à mon problème. Mais malheureusement les propositions que vous m'apportez ne correspondent pas exactement à ce que je recherche, peut-être que je me suis mal exprimer. Je vais donc reformuler ma recherche.
J'aimerai que dans un groupe de cellule uniquement (par exemple de A1:C10) si je clic une fois dans A8 la cellule affiche 1 ,que si je clique à nouveau dans A8 elle affiche 2 et si je clique une troisième foi dans A8 il ne m'affiche plus rien. J'espère avoir été plus explicite dans ma recherche. Merci d'avance pour votre aide.
 
Ma proposition du #8 le fait pour toute cellule.
Il ne reste qu'à mettre devant un test classique pour sortir si Target n'appartient pas à la plage voulue.
Et peut être aussi sélectionner une autre cellule après, parce qu'un clic sur la cellule déjà sélectionnée n'est pas détectable. Ce serait donc impossible à faire si c'est ça que vous auriez voulu. Avec un clic droit, peut être…
 
Dernière édition:
Je comprends bien ce que tu m'expliques, mais avec ton VBA je suis obligé de cliquer 2 x pour que le nombre 1 s'affiche et le nombre 2 après avoir cliqué 2x, donc ma demande si cela est possible c'est de cliquer 1x pour que 1 s'affiche et 2 après avoir cliqué une deuxième fois
 
- 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

  • Question Question
Réponses
7
Affichages
304
Réponses
4
Affichages
544
Retour