Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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 !
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
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
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
Bonjour Robert et M12, merci pour vos solutions, elles répondent à ce que je désirai. Vos codes sont différents mais le résultat est le même, pourriez-vous m'expliquer la différence entre vos codes
Ben... je dirais que mon code est basique et brut (comme moi finalement) et que celui de M12 est plus capillotracté... Mais bon, je laisse les mouches tranquilles...
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
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
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…
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