Condition si plusieurs cases à cocher sont cochées
Résolu
bassmart
Messages postés
281
Date d'inscription
Statut
Membre
Dernière intervention
-
bassmart Messages postés 281 Date d'inscription Statut Membre Dernière intervention -
bassmart Messages postés 281 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous!
J'ai créer un Userform avec une liste déroulante pour les noms et plusieurs cases à cocher qui représente les différentes feuilles de mon classeur. Le but de ce Userform est d'envoyer le nom de la personne qui à modifié le document ainsi que la date, sur la feuille qu'il à modifié en cochant la bonne case.
J'ai utilisé en partant la fonction "If" et "ElseIf", ça fonctionne, si je sélectionne une seule case. Mais ça ne fonctionne plus si je sélectionne plusieurs case! J'ai essayé par la suite la fonction "Case", alors là, il me copie le nom sur toutes les feuilles même si j'en sélectionne juste une.
Voici mes deux essais:
Merci de votre aide!
J'ai créer un Userform avec une liste déroulante pour les noms et plusieurs cases à cocher qui représente les différentes feuilles de mon classeur. Le but de ce Userform est d'envoyer le nom de la personne qui à modifié le document ainsi que la date, sur la feuille qu'il à modifié en cochant la bonne case.
J'ai utilisé en partant la fonction "If" et "ElseIf", ça fonctionne, si je sélectionne une seule case. Mais ça ne fonctionne plus si je sélectionne plusieurs case! J'ai essayé par la suite la fonction "Case", alors là, il me copie le nom sur toutes les feuilles même si j'en sélectionne juste une.
Voici mes deux essais:
Private Sub CommandButton1_Click() If CheckBox1.Value = True Then wns = "Coordonnées" zone = "ZoneCoord" ZoneDate = "ZoneDateCoord" ElseIf CheckBox2.Value = True Then wns = "CPTU" zone = "ZoneCPTU" ZoneDate = "ZoneDateCPTU" ElseIf CheckBox3.Value = True Then wns = "Piézomètres" zone = "ZonePiézo" ZoneDate = "ZoneDatePiézo" ElseIf CheckBox4.Value = True Then wns = "Inclinomètres" zone = "ZoneInclino" ZoneDate = "ZoneDateInclino" ElseIf CheckBox5.Value = True Then wns = "Suivi Implantation" zone = "ZoneImplant" ZoneDate = "ZoneDateImplant" ElseIf CheckBox6.Value = True Then wns = "FORAGE" zone = "ZoneForage" ZoneDate = "ZoneDateForage" End If If ComboBox1 = "" Then MsgBox "Vous devez inscrire votre nom!", vbCritical, "NOM" Exit Sub End If If wns = "" Then MsgBox "Vous-n'avez pas sélectionnez de feuilles!", vbCritical, "Feuilles" Exit Sub End If Sheets(wns).Shapes(zone).TextFrame.Characters.Text = ComboBox1.Value Sheets(wns).Shapes(ZoneDate).TextFrame.Characters.Text = Label3 UserForm5.Hide End Subet l'autre:
Private Sub CommandButton1_Click() Dim i As Variant For i = 1 To 6 On Error Resume Next Erase critères On Error GoTo 0 Select Case i Case 1 critères = CheckBox1.Value = True wns = "Coordonnées" zone = "ZoneCoord" ZoneDate = "ZoneDateCoord" Case 2 critères = CheckBox2.Value = True wns = "CPTU" zone = "ZoneCPTU" ZoneDate = "ZoneDateCPTU" Case 3 critères = CheckBox3.Value = True wns = "Piézomètres" zone = "ZonePiézo" ZoneDate = "ZoneDatePiézo" Case 4 critères = CheckBox4.Value = True wns = "Inclinomètres" zone = "ZoneInclino" ZoneDate = "ZoneDateInclino" Case 5 critères = CheckBox5.Value = True wns = "Suivi Implantation" zone = "ZoneImplant" ZoneDate = "ZoneDateImplant" Case 6 critères = CheckBox6.Value = True wns = "FORAGE" zone = "ZoneForage" ZoneDate = "ZoneDateForage" End Select If ComboBox1 = "" Then MsgBox "Vous devez inscrire votre nom!", vbCritical, "NOM" Exit Sub End If If crtières = "" Then MsgBox "Vous-n'avez pas sélectionnez de feuilles!", vbCritical, "Feuilles" Exit Sub End If Sheets(wns).Shapes(zone).TextFrame.Characters.Text = ComboBox1.Value Sheets(wns).Shapes(ZoneDate).TextFrame.Characters.Text = Label3 Next UserForm5.Hide End Sub
Merci de votre aide!
A voir également:
- Si case cochée alors excel
- Si ou excel - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Excel cellule couleur si condition texte - Guide
- Déplacer colonne excel - Guide
1 réponse
Bonjour,
Pour faire simple, en reprenant votre code, il suffit d'utiliser des If/End If en lieu et place des If/ElseIf/EndIf :
Mais on peut également faire beaucoup plus court comme code...
A voir si intéressé.
Pour faire simple, en reprenant votre code, il suffit d'utiliser des If/End If en lieu et place des If/ElseIf/EndIf :
Private Sub CommandButton1_Click() If CheckBox1.Value = True Then wns = "Coordonnées" zone = "ZoneCoord" ZoneDate = "ZoneDateCoord" End If If CheckBox2.Value = True Then wns = "CPTU" zone = "ZoneCPTU" ZoneDate = "ZoneDateCPTU" End If If CheckBox3.Value = True Then wns = "Piézomètres" zone = "ZonePiézo" ZoneDate = "ZoneDatePiézo" End If If CheckBox4.Value = True Then wns = "Inclinomètres" zone = "ZoneInclino" ZoneDate = "ZoneDateInclino" End If If CheckBox5.Value = True Then wns = "Suivi Implantation" zone = "ZoneImplant" ZoneDate = "ZoneDateImplant" End If If CheckBox6.Value = True Then wns = "FORAGE" zone = "ZoneForage" ZoneDate = "ZoneDateForage" End If If ComboBox1 = "" Then MsgBox "Vous devez inscrire votre nom!", vbCritical, "NOM" Exit Sub End If If wns = "" Then MsgBox "Vous-n'avez pas sélectionnez de feuilles!", vbCritical, "Feuilles" Exit Sub End If Sheets(wns).Shapes(zone).TextFrame.Characters.Text = ComboBox1.Value Sheets(wns).Shapes(ZoneDate).TextFrame.Characters.Text = Label3 UserForm5.Hide End Sub
Mais on peut également faire beaucoup plus court comme code...
A voir si intéressé.
J'ai utilisé ton code simplifié et ça fonctionne très bien!