Formulaire userform

Bonsoir à tous!

Voilà je m'exerce un peu avant d'avoir un examen en VBA.

Je dois donc créer un useform avec des combobox, checkbox etc.

J'ai donc fait la mise en forme (basique) mais je bloque à des endroits.

J'ai mis deux checkbox oui et non. Je veux que quand je coche une case, l'autre disparaisse. Pour une checkbox j'ai écrit " Oui = True " et " Non.Enabled = False " Quand je coche oui, non se grise mais il m'est impossible de décocher à nouveau" J'ai pensé utiliser la fonction If Then mais aucun succès.

Second problème, j'ai deux combobox. L'une contient des pays, l'autre des villes. Si par exemple je choisi France, dans l'autre combobox je dois avoir les villes françaises. J'utilise donc Rowsource pour mettre dans les combobox, mais je ne sais pas comment faire pour quand je choisi un pays ce soit les villes de ce pays.

Je vous remercie de votre aide !

Bien cordialement

Bonsoir,

une première idée, si vous avez deux checkbox pour dire soit oui soit non en cochant la bonne et décochant l'autre, alors pour ce type de choix il vaut mieux utiliser les bouton radio (les ronds), car eux se "gèrent" tout seul puisque dans un même groupe un seul peut être actif.

Les cases à cocher sont des objets utilisés pour faire des choix qui peuvent être "simultanés" donc un compatible avec un "oui ou non".

Bon courage pour la suite.

@ bientôt

LouReeD

Je pensais la même chose, le soucis est que le sujet m'impose les checkbox.. Un vrai casse tête pour un débutant de VBA aha

Merci de votre aide !

Alors dans ce cas créer des checkbox ayant en commun un radical suivi d'un numéro allant de 1 à 10 par exemple.

Dès qu'un changement d'état sur un checkbox est détecté, un boucle pour les mettre tous à "false" puis le dernier utilisé à True

Voir fichier :

32chekbox.xlsm (15.74 Ko)

Il y a "en plus" une variable interrupteur MAJ qui permet d'éviter la boucle infinie du fait du changement de valeur des différents checkbox....

Mais dans un cas pareil il vaut mieux utiliser un module de Class, mais là je ne connais pas si ce n'est que cela évite sur les contrôles tous les codes répétitifs comme celui du fichier...

@ bientôt

LouReeD

D'accord merci beaucoup, je viens de comprendre !

Je pense qu'avec cette démarche, cela conviendra !

Encore merci de votre aide !

Bonjour,

je suis content si cela vous permet d'avancer dans vos recherche pour votre examen

@ bientôt

LouReeD

Bonjour, Salut LouReed !

Une CheckBox peut prendre 2 valeurs dans son usage élémentaire : True ou False, donc pour enregistrer "Oui" ou "Non", 2 CheckBoxes c'est une de trop. On assimile True à "Oui" et False à "Non" pour la première, et la seconde n'a pas lieu d'être.

Et :

Private Sub CheckBox1_Click()
    With CheckBox1
        .Caption = IIf(.Value, "Oui", "Non")
    End With
End Sub

affichera "Oui" ou "Non" dans le libellé de la CheckBox.

Si tu ne parviens pas à construire des listes-cascades avec RowSource, c'est sans doute que RowSource ne convient pas (ou que tu ne l'utilises pas adéquatement...). Ta 2e liste étant dépendante du choix dans la première, il faut donc n'y entrer que les items qui répondent à la condition induite par ce choix. Le choix RowSource ou autre (List, AddItem) dépend surtout des interventions ultérieures (RowSource lie la liste à la plage, ce qui posera problème si on intervient sur la plage...)

Cordialement.

Bonjour Maréchal !

J'adore :

Salut LouReed !

Cela me donne l'impression d'être nul !!! Surtout quand on lit le suite !

Oui la check à elle seule fait le oui et le non mais l'exercice ne va pas que là, au vu de mes questions... C'était plus pour faire un exercice de gestion de coche, enfin c'est ce que j'ai compris lorsque ma solution de radio ne convenait pas...

@ bientôt sur les ondes !

LouReeD

Hello !

Je ne te suis pas... On peut manipuler plusieurs CheckBox, c'est sûr ! J'ai pour ma part laissé cela de côté, pensant très primairement qu'il convenait d'abord de savoir en manipuler un, et la problématique étant une alternance Oui/Non, cela ne mettait en jeu qu'un seul contrôle. Je n'ai rien contre la gestion de plusieurs couples simultanés, ce n'était pas mon propos.

Cordialement.

Merci pour vos différents retour !

J'ai un nouveau problème de type " erreur définie par l'application ou par l'objet "

Private Sub Pays_Change()
Pays.Clear
Villes.Clear
Dim no_colonne As Integer, nb_lignes As Integer
    no_colonne = Pays.ListIndex + 1
    nb_lignes = Cells(1, no_colonne).End(xlDown).Row ' le problème vient de cette ligne
For i = 2 To nb_lignes
       Villes.AddItem Cells(i, no_colonne)
    Next
End Sub

Salut tout le monde

d’après le guide de référence du développeur de Microsoft Office Excel 2007 :

Utilisez un contrôle CheckBox pour permettre à l'utilisateur de choisir entre deux valeurs telles que Oui/Non]

Mais il est fait pour que l’utilisateur puisse sélectionner un ou plusieurs éléments à la fois

Utilisez un contrôle OptionButton pour afficher si un seul élément contenu dans un groupe est sélectionné.

Il est fait pour que l’utilisateur puisse sélectionner un seul élément à la fois

Je veux que quand je coche une case, l'autre disparaisse.

Donc tu peux utiliser OptionButton qui est fait pour cet usage (sans besoin de code)

Notez : que tous les contrôles OptionButton d'un contrôle Frame s'excluent l'un l'autre.

Pour grouper plusieurs contrôles de OptionButton utiliser un contrôle frame

22checkbox.xlsm (14.68 Ko)

Bonjour,

et l'on revient à la genèse du sujet :

Je pensais la même chose, le soucis est que le sujet m'impose les checkbox..

@ bientôt

LouReeD

Salut tout le monde

d’après le guide de référence du développeur de Microsoft Office Excel 2007 :

Utilisez un contrôle CheckBox pour permettre à l'utilisateur de choisir entre deux valeurs telles que Oui/Non]

Mais il est fait pour que l’utilisateur puisse sélectionner un ou plusieurs éléments à la fois

Utilisez un contrôle OptionButton pour afficher si un seul élément contenu dans un groupe est sélectionné.

Il est fait pour que l’utilisateur puisse sélectionner un seul élément à la fois

Je veux que quand je coche une case, l'autre disparaisse.

Donc tu peux utiliser OptionButton qui est fait pour cet usage (sans besoin de code)

Notez : que tous les contrôles OptionButton d'un contrôle Frame s'excluent l'un l'autre.

Pour grouper plusieurs contrôles de OptionButton utiliser un contrôle frame

Oui ça je le sait bien, mais le problème est que ce sont les checkbox qui me sont imposées, et non les optionbutton. Mais merci de l'aide !

Salut LouReeD , Apockalipso

Vous avez raison, mais j ai voulu expliquer les choses a ma façon et surtout quand 'entends le mot exercice

Si j'étais ton maitre, Je ferai la même chose dans certain cas et seulement pour t’apprendre comment tu dois être créative mais je n'oublierai jamais de te conseiller de placer toujours l’outil à sa place (pour optimisation de code)

Rechercher des sujets similaires à "formulaire userform"