2 questions sur un USERFORM

S

seb02

Guest
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 ).
 

Pièces jointes

  • Groupe_VB.zip
    24.3 KB · Affichages: 41
M

myDearFriend

Guest
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
myDearFriend-3.gif
 

Pièces jointes

  • PourSeb02.zip
    10.7 KB · Affichages: 52
@

@+Thierry

Guest
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 Lien supprimé

=> Fil de Discussion Lien supprimé

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
 
@

@+Thierry

Guest
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
 
S

seb02

Guest
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.
 

Discussions similaires

Statistiques des forums

Discussions
311 711
Messages
2 081 794
Membres
101 817
dernier inscrit
carvajal