XL 2013 Bloquer un CommandButton si OptionButton pas actif

Citronflexe

XLDnaute Junior
Bonjour à tous,


Je suis à la recherche d'aide quant au problème suivant :

Dans le fichier ci-joint, cliquer sur le CommandButton ouvre un UserForm. Dans cet UserForm, j'aimerais bloquer les CommandButtons "Poste suivant" et "Terminer" tant qu'il n'y a pas un OptionButton de sélectionné dans les Frames "Poste", "Rotation" et "Équipe".

En résumé, tant qu'un opérateur n'a pas choisi quelle équipe, quel poste et quelle rotation il occupe, il ne peut pas saisir de données.

J'ai essayé d'utiliser un Change mais rien de concluant, en plus je ne sais pas bien où l'écrire..:(


Merci d'avance pour votre aide et votre temps.
 

Pièces jointes

  • Citronflexe_XLD.xlsm
    34.2 KB · Affichages: 28

vgendron

XLDnaute Barbatruc
Hello
voir PJ

j'ai ajouté des booleans: ChoixPoste, ChoixRotation et ChoixEquipe qui sont mis à vrai dès qu'un des optionsboutons concernés est sélectionné
si les trois booleans sont à vrai, les deux boutons sont rendus enable

ils sont mis disable dans le USF_Initialize
 

Pièces jointes

  • Citronflexe_XLD.xlsm
    45.8 KB · Affichages: 26

Citronflexe

XLDnaute Junior
Re @vgendron

Juste un petit soucis :
Quand je clique sur "Poste suivant" dans l'USF, ca désactive tous les OptionButton du Frame "Poste", pourtant ca ne désactive pas les boutons "Poste suivant" et "Terminer".

Donc à la deuxième saisie, on peut contourner l'obligation d'entrer un poste de travail.
J'ai essayé d'ajouter un "ChoixPoste = False" à la fin du code du bouton "Poste suivant", mais ça ne fait rien...

Voir fichier à jour en PJ.


Merci d'avance !


EDIT : J'ai aussi ajouté une fonction pour activer la feuille "4-9-2018" si elle existe déjà, ou de créer une nouvelle feuille avec la date si elle n'existe pas, pour éviter les messages d'erreur...

EDIT de l'EDIT : En fait il suffisait de rappeller "afficheboutton"... ça marche super bien !
Merci beaucoup :)
 

Pièces jointes

  • Citronflexe_XLD.xlsm
    85.7 KB · Affichages: 21
Dernière édition:

vgendron

XLDnaute Barbatruc
voir ton code corrigé ici

VB:
Private Sub CommandButton2_Click()
Dim ligne, colonne As Integer

Call Module1.Macro1
For Each OB In Me.Controls 'désactive tous les controls qui sont des OptionButton
        If OB.Name Like "*OptionButton*" Then
            OB.Value = False
        End If
       
        If OB.Name Like "*TextBox*" Then 'vide tous les controls textBox
            OB.Value = ""
        End If
       
Next

'OptionButton1.Value = False
'OptionButton2.Value = False
'OptionButton3.Value = False
'OptionButton4.Value = False
'OptionButton5.Value = False
'OptionButton6.Value = False

'TextBox2.Text = ""
'TextBox3.Text = ""
'TextBox4.Text = ""
'TextBox5.Text = ""
'TextBox6.Text = ""
'TextBox7.Text = ""
'TextBox8.Text = ""
'TextBox9.Text = ""
'TextBox10.Text = ""
'TextBox11.Text = ""
'TextBox12.Text = ""
'TextBox13.Text = ""

'réinit des 3 booleans
ChoixPoste = False 
ChoixEquipe = False
ChoixRotation = False
'Appel du code pour afficher ou pas les boutons (ca manquait)
afficheBoutton

End Sub
 

Citronflexe

XLDnaute Junior
Re,

Quand je copie ton code, ca me met le bloc
Code:
        If OB.Name Like "*OptionButton*" Then
            OB.Value = False
        End If
       
        If OB.Name Like "*TextBox*" Then 'vide tous les controls textBox
            OB.Value = ""
        End If

en rouge dans VBA, et lors de l'activation du bouton, ça me renvoie une "erreur de syntaxe".

Je suis perdu :confused:
 

Citronflexe

XLDnaute Junior
Sinon je peux laisser mes

VB:
'OptionButton1.Value = False
'OptionButton2.Value = False
'OptionButton3.Value = False
'OptionButton4.Value = False
'OptionButton5.Value = False
'OptionButton6.Value = False

'TextBox2.Text = ""
'TextBox3.Text = ""
'TextBox4.Text = ""
'TextBox5.Text = ""
'TextBox6.Text = ""
'TextBox7.Text = ""
'TextBox8.Text = ""
'TextBox9.Text = ""
'TextBox10.Text = ""
'TextBox11.Text = ""
'TextBox12.Text = ""
'TextBox13.Text = ""

C'est moche et ca fait pas pro, mais bon... personne ira fouiller
 

Citronflexe

XLDnaute Junior
et sinon, il va sans doute falloir revoir l'utilisation du bouton "Terminer"
si il est activé et désactivé en meme temps que "poste suivant", tu ne pourra jamais sortir de ton formulaire (à part la croix)

En fait l'idée c'est que les opé rentrent le poste 1, puis 2... puis au dernier plutôt que cliquer sur "poste suivant", ils cliquent sur "terminer", et ce bouton ferme le formulaire.
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 069
Messages
2 085 040
Membres
102 763
dernier inscrit
NICO26