Aide sur utilisation OptionButton

brutor2

XLDnaute Junior
Bonjour à tous,

Je viens une nouvelle fois solliciter votre précieuse aide pour quelque chose que je croyais simple au départ.

J'ai trouvé divers sujets sur la question, mais depuis deux jours j'ai tout essayé mais je n'arrive pas à adapter les différentes solutions à mon problème.
(Je suis surement une T..... !!)

Je possède un classeur avec une feuille paramètres et une feuille impression.

Dans la feuille paramètres, j'ai 2 groupes Base et Ligne composé chacun d'un nombre d'équipes à qui on attribue un service en fonction de la journée de travail (Le service variant d'une journée à l'autre....)

J'ai essayé de créer un userform ( cela viendra s'intéger dans userform final qui est plus compliqué) qui me permette en cochant le bon bouton radio de me proposer la liste d'équipes et de services correspondante.
Les valeurs retenues devant être ensuite reporté dans des cellules spécifiques d'une feuille destinée à l'impression.

Je bute complètement sur ce problème alors que je suis certain qu'il ne doit pas être si compliqué.
Je suis encore débutant sur VBa !!!

1. Comment faire pour que le choix du bouton limite les listes?

2. ListBox ou ComboBox quel est le meilleur choix dans ce cas ?

Merci à tous pour votre attention.

Cordialement

Brutor
 

Pièces jointes

  • OptionButton.xls
    25 KB · Affichages: 70
  • OptionButton.xls
    25 KB · Affichages: 75
  • OptionButton.xls
    25 KB · Affichages: 72
G

Guest

Guest
Re : Aide sur utilisation OptionButton

Bonjour Brutor2,

Je viens d'ouvrir ton fichier parce que tu disais:
J'ai trouvé divers sujets sur la question, mais depuis deux jours j'ai tout essayé mais je n'arrive pas à adapter les différentes solutions à mon problème.

Mais qu'as-tu fais d'autre que de poser des contrôles sur ton userform.
Il n'y a pas le début d'une ligne de code écrite.

Si c'est une solution clef en main que tu veux, je passe mon chemin.

A bientôt
 

brutor2

XLDnaute Junior
Re : Aide sur utilisation OptionButton

Bonjour à tous, bonjour Hasco,

Bonjour Brutor2,

Si c'est une solution clef en main que tu veux, je passe mon chemin.
A bientôt

Un peu vif comme réaction.

Ce n'est pas une solution toute faite que je recherche, mais lassé de tourner le problème sans trouver de réponse, j'avais besoin d'aide.

Je n'ai pas mis de bout de code car je n'arrivais pas à constituer quelque chose de cohérent et qui fonctionne à peu près..

Donc désolé d'avoir présenté la chose ainsi :eek::eek::eek::eek::eek:

Mais finalement je crois avoir trouvé une solution en partie.
Pour le reste je bloque encore un peu...

Donc si quelqu'un pouvait m'aider


Merci d'avance.

Cordialement.

P:S j'ai joint un nouveau fichier avec code !!!
 

Pièces jointes

  • OptionButtonV2.xls
    36 KB · Affichages: 81
G

Guest

Guest
Re : Aide sur utilisation OptionButton

Re,

D'après ce que j'ai compris, tu veux afficher les mêmes valeurs dans les listbox et les cellules de la feuille impresssion.
Alors vois si cela te convient.

Si les listBox ne servent qu'à l'affichage des données, il faut les étendres, pour quelles puissent afficher toutes les lignes.

Code:
Private sh As Worksheet 'déclare la variable sh (SHeet)
Private f As Worksheet 'déclare la variable sh (SHeet)
Private Sub OpButBase_Click()
    Call affich 'lance la procédure "affich"
End Sub
Private Sub OpButLigne_Click()
    Call affich 'lance la procédure "affich"
End Sub
 
Public Sub affich()
 
    LBoxEquipe.Clear 'vide les anciennes valeur de ListBox
    LBoxService.Clear 'vide les anciennes valeur de ListBox
    f.Range("C6:C17").ClearContents 'vide les anciennes valeur des cellules
    f.Range("F6:F17").ClearContents 'idem
 
    If OpButBase = True Then 'premier cas
        LBoxEquipe.List = sh.Range("C3:C14").Value 'remplissage de la ListBox Equipe
        LBoxService.List = sh.Range("E3:E14").Value 'remplissage de la ListBox Service
        f.Range("D4") = "Base"
        f.Range("C6").Resize(12).Value = sh.Range("C3:C14").Value
        f.Range("F6").Resize(12).Value = sh.Range("E3:E14").Value
    Else 'deuxième cas
        LBoxEquipe.List = sh.Range("C15:C24").Value 'remplissage de la ListBox Equipe
        LBoxService.List = sh.Range("E15:E24").Value 'remplissage de la ListBox Service
        f.Range("D4") = "Ligne"
        f.Range("C6").Resize(10).Value = sh.Range("C15:C24").Value
        f.Range("F6").Resize(10).Value = sh.Range("E15:E24").Value
    End If
End Sub
 
Private Sub UserForm_Initialize()
'Les initialiser ici est suffisant
Set sh = Sheets("Paramètres") 'définit la variable sh
Set f = Sheets("Impression")
End Sub

Sinon précise ta question.

A+
[Edition précision] les boutons options d'un même 'Frame' s'excluant l'un l'autre, il n'est pas besoin de ligne telle que 'if optButBase=true then optButLigne=false' cela se fait automatiquement.
 
Dernière modification par un modérateur:

brutor2

XLDnaute Junior
Re : Aide sur utilisation OptionButton

Bonjour Hasco, Bonjour le Forum,

Après le tri par OptionButton, je veux sélectionner une valeur dans chaque ListBox et que celle-ci se reporte dans la feuille impression au bon emplacement après sélection (une seule valeur par ListBox).

Merci de votre attention.

Cordialement.

Brutor
 

brutor2

XLDnaute Junior
Re : Aide sur utilisation OptionButton

Re,

vois si cela convient.

A+

Bonjour le Forum, Re Bonjour Hasco,

Super !!!
C'est le résultat souhaité en effet et c'est vrai que je n'avais pas été précis...

Une petite question si je souhaitais que le report des valeurs se fasse sans bouton validation mais uniquement par la sélection de la valeur dans la ListBox, est-ce possible et comment comment s'y prendre ?

Merci de ton aide.

Cordialement

Brutor

PS : Pour mieux comprendre le code à quoi correspond les "caractères" des lignes de code

Code:
Dim [COLOR=red][B]DerLigne[/B][/COLOR] As Long (que je ne retrouve pas dans le code
 
.Range("D4") = [COLOR=red][B]IIf[/B][/COLOR](OpButBase, "Base", "Ligne")
 
Dernière édition:
G

Guest

Guest
Re : Aide sur utilisation OptionButton

Re,

Crois moi, laisse le bouton valider.
Sinon tu vas obtenir une usine à gaz simplement pour pouvoir afficher deux valeurs qui riquent de perdre toute cohérence.

Si tu veux vraiment tu enlève le bouton, laisse son code que tu appelles sur

Code:
Private Sub LboxEquipe_Click()
        cmdValider_Click
End Sub
Private Sub LboxEquipe_Click()
        cmdValider_Click
End Sub

C'est plus suceptible d'erreur, car tu ne maîtrises plus les erreurs de manip de l'utilisateur sur les listBox.
A+
 

brutor2

XLDnaute Junior
Re : Aide sur utilisation OptionButton

Bonsoir le Forum, Bonsoir Hasco,


Merci de ton conseil que je vais surement adopter.


Pour mieux comprendre le code à quoi correspond les "caractères" des lignes de code

Code:
Dim [COLOR="Red"][B]DerLigne[/B][/COLOR] As Long (que je ne retrouve pas dans le code
 
.Range("D4") =[COLOR="Red"][B] IIf[/B][/COLOR](OpButBase, "Base", "Ligne")

Encore merci de ton aide qui m'a été précieuse dans la réalisation de mon projet.

Cordialement.

Brutor
 
G

Guest

Guest
Re : Aide sur utilisation OptionButton

Re,

Pour le Dim Derligne As Long, tu peux l'enlever c'est une scorie oubliée;)

Quant à :
Code:
.Range("D4") =[COLOR=red][B] IIf[/B][/COLOR](OpButBase, "Base", "Ligne")

Il s'agit en quelque sorte d'un IF Then Else End If contracté.

Au contraire de ce dernier, IIF Evalue chaque expression à chaque fois. A utiliser parcimonieusement, sur des conditions simples.

Mais en faisant F1 avec le curseur sur le mot IIF l'aide en ligne te l'aurait expliqué.

A+
 

Discussions similaires

Réponses
3
Affichages
217
Réponses
3
Affichages
517
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 207
Messages
2 086 240
Membres
103 162
dernier inscrit
fcfg