![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
bonjours à tous.
Je suis nouveau sur sur Forum mais également débutant. ![]() j'aurai donc 2 questions à vous poser. Désolé pour la formulation du titre de ce post, mais je ne sais pas comment nommer les choses. j'ai fait un fichier Excel permettant de répondre à certain critère de calcul de l'Impôt sur les sociétés( pour mes cours). Le but étant d'ouvrir un USERFORM à l'ouverture du fichier EXCEL permettant de séléctionner une filiale parmi 15 grâce à des checkbox (avec un bouton Séléctionner et annuler). Voici ce que j'ai marqué dans mon code : Private Sub CommandButton1_Click() If CheckBox1.Value = True Then Sheets("produits et charges fiscales").Select Range("Num_Filiale").Value = 1 ElseIf CheckBox2.Value = True Then Sheets("produits et charges fiscales").Select Range("Num_Filiale").Value = 2 ElseIf CheckBox3.Value = True Then Sheets("produits et charges fiscales").Select Range("Num_Filiale").Value = 3 ElseIf CheckBox4.Value = True Then Sheets("produits et charges fiscales").Select Range("Num_Filiale").Value = 4 ElseIf CheckBox5.Value = True Then Sheets("produits et charges fiscales").Select Range("Num_Filiale").Value = 5 ElseIf CheckBox6.Value = True Then Sheets("produits et charges fiscales").Select Range("Num_Filiale").Value = 6 ElseIf CheckBox7.Value = True Then Sheets("produits et charges fiscales").Select Range("Num_Filiale").Value = 7 ElseIf CheckBox8.Value = True Then Sheets("produits et charges fiscales").Select Range("Num_Filiale").Value = 8 ElseIf CheckBox9.Value = True Then Sheets("produits et charges fiscales").Select Range("Num_Filiale").Value = 9 ElseIf CheckBox10.Value = True Then Sheets("produits et charges fiscales").Select Range("num_Filiale").Value = 10 ElseIf CheckBox11.Value = True Then Sheets("produits et charges fiscales").Select Range("Num_Filiale").Value = 11 ElseIf CheckBox12.Value = True Then Sheets("produits et charges fiscales").Select Range("Num_Filiale").Value = 12 ElseIf CheckBox13.Value = True Then Sheets("produits et charges fiscales").Select Range("Num_Filiale").Value = 13 ElseIf CheckBox14.Value = True Then Sheets("produits et charges fiscales").Select Range("Num_Filiale").Value = 14 ElseIf CheckBox15.Value = True Then Sheets("produits et charges fiscales").Select Range("Num_Filiale").Value = 15 Else MsgBox ("Veuillez saisir une filiale") End If Unload UserForm1 1er question: J'aimerai que si l'utilisateur appui sur le bouton Séléctionner (commandbouton1) sans séléctionner de checkbox, le message "Veuillez saisir une filiale" s'affiche et qu'après l'USERFORM se relance. Le message c'est bon. mais je ne sais pas comment relance le USERFORM. ![]() 2eme Question : J'aimerai également limiter la séléction à un seul checkbox. Et là, je ne sais vraiement pas comment faire. Biensur, si vous avez une méthode plus courte que celle que j'ai utilisé avec les IF, ELSEIF, ELSE, je suis également prenneur, cela me permettra de m'améliorer. En vous remerciant très fortement. Car cela me permettra certrainement de réussir mon exam de fin d'année. Merci également à mon amis TIOTWAY, qui a débuté il y a quelque tps, et qui m'a fait découvrir ce forum. Je precise que je n'ai pas souvant accès à internet, donc mes réponses seront peut-être long ( jusque 2 semaines ). |
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
Guest
Messages: n/a
|
Bonjour Seb02,
On dirait que ton fichier n'est pas passer correctement, je n'arrive pas à l'ouvrir. Cela dit, tu trouveras ci-joint un exemple qui devrait répondre à tes questions... L'utilisation d'OptionButtons au lieu des Checkboxs me semble tout à fait approprié ici. Avec les OptionButtons tu obtiens un choix obligatoire et un seul, sans une seule ligne de code VBA. Il suffit simplement de mettre la propriété value à True pour le premier. Cordialement. Didier_mDF ![]() |
|
|
#3 (permalink) |
|
Guest
Messages: n/a
|
Bonjour Seb, le Forum Disons tout d'abord que des CheckBox ne sont pas l'idéal pour n'avoir qu'une seule cochée... Le Control "OptionButton" est prévu automatqiuement pour ça... Sans se compliquer autant la vie... Mais de par l'expérience de ce Forum, tu n'es pas le premier qui demande ceci ! Je peux dans un premier temps te proposer de regarder cette démo : =>Démo Téléchargeable USF-CheckBox-One-To-One-MassUpdate-V01.zip => Fil de Discussion DEMO UserForm Mass CheckBox Contrôle en Boucle Tu apprendras comment faire des boucles sur ce genre de Controls... Bien évidemment celà ne correspond pas à 100% à tes besoins, mais celà aura l'avantage de te montre comment procéder. Ensuite, c'est simple tu paramètres cette ligne à 1 au lieu de 10 dans la Private Sub TheCheckBoxing() If I = 1 Then 'au lieu de 10.... MsgBox "Maximum de CheckBox Cochées Atteint" Controls("CheckBox" & CbxID) = False End If Pour le reste, huum je ne sais pas car je n'ai pas téléchargé ton fichier (station sensible du bureau) mais ce que je peux dire c'est que tu peux passer par la macro "CommandButton4_Click" pour sélectionner ta feuille, ça deviendrait un truc comme ça : Private Sub CommandButton4_Click() Dim CTRL As Control Dim CTRLname As String Dim Numero As Byte For Each CTRL In Me.Controls If TypeOf CTRL Is MSForms.CheckBox Then If CTRL.Value = True Then Sheets(CTRL.Tag).Select CTRLname = CTRL.Name Numero = IIf(Len(CTRLname) = 9, 1, 2) Range("Num_Filiale").Value = Val(Right(CTRLname, Numero)) End If End If Next If CTRLname = "" Then MsgBox "Pas de CheckBox Cochée", vbCritical, T End If End Sub ATTENTION, pour que celà fonctionne, il faut aller dans la fenêtre propriété de chaque CheckBox et indiquer le nom de la Feuille dans la propriété Tag et aussi que tes controls soient bien nommés "CheckBox + Numéro" soit 9 ou 10 digits Bonne Soirée @+Thierry |
|
|
#4 (permalink) |
|
Guest
Messages: n/a
|
Salut Didier, re Seb Sorry, j'ai eu un coup de Fil pendant la résdaction de ce message et je n'avais pas réffraichi... Mais sinon on est du même avis, pour les OptionButtons préférables dans ce cas de figure mais "Just For The Fun"et qu'on se dise Nothing Not Possible On XLD, donc un "barbatruc" dans la démo ci-dessus !! Bon Week End à toi et à tous et toutes @+Thierry |
|
|
#5 (permalink) |
|
Guest
Messages: n/a
|
Salut,
Je tiens à vous remercier. j'ai remi en pièce jointe mon fichier, plus l'adresse où le trouver au cas ou http://perso.wanadoo.fr/seb02/Groupe_VB.zip Maintenant, j'ai plus cas regarder à tout cela demain. et si j'ai un autre soucis, je repost au même endroit. Et encore merci pour ces reponses rapides. |
| ANNONCES | |
| Liens sociaux |
| Outils de la discussion | |
|
|