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

Un petit code a simplifier

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 !

zefirstfan

XLDnaute Junior
Bonjour Tout le monde,

Voici un code qui fonctionne tres bien, mais qui fait un peu usine a gaz.
J'ai essayé en mettant de Else mais ca y'en a pas marcher.

un petit coup de pouce?

Sub checkbox1_click()
If CheckBox1.Value = True Then TextBox5.Value = "1"
If CheckBox1.Value = False Then TextBox5.Value = "0"
End Sub
Sub checkbox2_click()
If CheckBox2.Value = True Then TextBox6.Value = "1"
If CheckBox2.Value = False Then TextBox6.Value = "0"
End Sub
Sub checkbox3_click()
If CheckBox3.Value = True Then TextBox7.Value = "1"
If CheckBox3.Value = False Then TextBox7.Value = "0"
End Sub

Sub checkbox4_click()
If CheckBox4.Value = True Then TextBox5.Value = "1"
If CheckBox4.Value = False Then TextBox5.Value = "0"

If CheckBox4.Value = True Then TextBox6.Value = "1"
If CheckBox4.Value = False Then TextBox6.Value = "0"

If CheckBox4.Value = True Then TextBox7.Value = "1"
If CheckBox4.Value = False Then TextBox7.Value = "0"
End Sub


Gracias et bon dimanche sous vos applaudissements.
 
Re : Un petit code a simplifier

Salut Zefirstfann,

Voici ci-dessous ton problème de If ... Then ... Else ... End If solutionné (cf. macro Private Sub checkbox4_click)

Ton code est très bien ainsi, mais puisque tu souhaite quand même le raccourcir, c'est choses faite.

VB:
Private Sub checkbox1_click()
    TextBox5.Value = IIf(CheckBox1.Value = True, 1, 0)
End Sub

Private Sub checkbox2_click()
    TextBox6.Value = IIf(CheckBox2.Value = True, 1, 0)
End Sub

Private Sub checkbox3_click()
    TextBox7.Value = IIf(CheckBox3.Value = True, 1, 0)
End Sub

Private Sub checkbox4_click()
If CheckBox4.Value = True Then
    For i = 5 To 7
        Controls("TextBox" & i).Value = 1
    Next i
Else
    For i = 5 To 7
        Controls("TextBox" & i).Value = 0
    Next i
End If
End Sub


Comme tu peux le voir, j'ai vraiment raccourci tout ce que je pouvais! J'ai même remplacé "1" par 1. Deux caractères en moins 🙂 à chaque fois. Les deux versions fonctionnent à la perfection. Sauf que dans ton cas le chiffre est considéré comme du texte, alors que dans ma version il s'agit d'un nombre. Mais visuellement c'est la même chose.

Ci-joint les macros dans leurs éléments naturel

Pour information, quand la macro ouvre l'USF la première fois, aucune CheckBox n'est coché, donc dans les TextBox, il devrait y avoir 0 de partout. Non?

Si oui rajouter dans l'UserForm la macro suivante :
VB:
Private Sub UserForm_Initialize()
For i = 5 To 7
        Controls("TextBox" & i).Value = 0
Next i
End Sub

Bonne fin de soirée
 

Pièces jointes

Re : Un petit code a simplifier

Bonsoir zefirstfan, Excel-lent,

Si il s'agit de gagner en nombre de caractères, le code d'Excel-lent sans changements :

VB:
Private Sub checkbox1_click()
    TextBox5 = -1 * CheckBox1
End Sub
Private Sub checkbox2_click()
    TextBox6 = -1 * CheckBox2
End Sub
Private Sub checkbox3_click()
    TextBox7 = -1 * CheckBox3
End Sub
Private Sub checkbox4_click()
    For i = 5 To 7
        Controls("TextBox" & i) = -1 * CheckBox4
    Next i
End Sub

Les .Values peuvent être supprimées car elles sont les propriétés par défaut des Textboxs et Checkbox. Et comme true = -1 et false = 0...

Cordialement

KD
 
Re : Un petit code a simplifier

Super, merci beaucoup.
Je suis encore en train de me battre avec les formats date des user forms qui apparemment reste un grand débat sur ce forum.
Je vais laisser tomber pour ce soir.
Merci pour votre aide.
Zeuf
 
Re : Un petit code a simplifier

Bonjour Zefirstfan,

L'important est de bien définir au préalable les variables qui contiendrons tes dates (si tu utilise des variables).

Bien penser à préciser dans ton code que la cellule..., la TextBox..., la ... contient une date.

Si tu respect tous cela dans l'ensemble de ton code, ça ne peut que fonctionner 😉

Bonne recherche
Cordialement
 
- 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
10
Affichages
457
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
333
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
889
Réponses
2
Affichages
286
Réponses
7
Affichages
326
Réponses
3
Affichages
322
Réponses
2
Affichages
626
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
766
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…