Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Création de fausse case à cocher

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 !

fred2705

XLDnaute Junior
J’ai dépassé le nombre de case à cocher autoriser dans excel 2003, j’ai entendu parler de la possibilité de réaliser de fausse casse à cocher…j’ai un début de code mais comme je suis un débutant en VBA, je sèche !

Voici mon exemple en fichier joint, merci pour votre aide.
 

Pièces jointes

Re : Création de fausse case à cocher

Bonjour fred2705,

Pas certain d'avoir bien compris ... et pas sûr non plus que l'événement SelectionChange soit le plus adapté ... mais essaie ce qui suit (en mettant toute la plage D2 à D10 en police Wingdings, 11, gras, centré, etc.):
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, [D2:D10]) Is Nothing Then
    If Target = "þ" Then
        Target.Offset(0, 1) = False
        Target = "o"
    Else
        Target = "þ"
        Target.Offset(0, 1) = True
    End If
End If
End Sub

[Edit:] Salut Si... 😀
 
Dernière édition:
Re : Création de fausse case à cocher

salut

pour un clin d'oeil à Modeste 😉

La plage étant déjà formatée (police Wingdings, taille..)
Code:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
  If R.Count > 1 Then Exit Sub 'traitement pour une seule cellule
  If R.Column <> 4 Or R = "" Then Exit Sub 'hors colonne D ou vide : sortie
  R = IIf(R = "þ", "o", "þ") 'permute les 2 cas
  R(1, 2) = R = "þ" 'vrai si = sinon faux
  R(1, 0).Select ''pour premettre une correction
End Sub
 
Re : Création de fausse case à cocher

Autre proposition
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Not Intersect(Target, [E6:E9]) Is Nothing Then
    If Target.Value Then
      Target.Value = False
      Target.Offset(0, -1).Value = "o"
    Else
      Target.Value = True
      Target.Offset(0, -1).Value = "þ"
    End If
    Cancel = True
  End If
End Sub

et si on n'est pas "attaché" à vrai/faux, on peut optimiser
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Not Intersect(Target, [E6:E9]) Is Nothing Then
    With Target
      .Value = Not .Value
      .Offset(0, -1).Value = IIf(.Value, "þ", "o")
    End With
    Cancel = True
  End If
End Sub
 
Dernière édition:
- 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

Réponses
5
Affichages
180
Réponses
10
Affichages
207
Réponses
18
Affichages
1 K
Réponses
6
Affichages
312
Réponses
11
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…