Fonction si impossible dans userform_initialize()
Bonsoir,
Mon objectif : afficher ou pas un bouton de commande sur un formulaire (Accueil). Choix possible via un 2° formulaire (paramétres) avec une case à cocher.
Mon code de UserForm_initialize()
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
Private Sub UserForm_Initialize()
'Initialisation FormAccueil
'Les fonctions if ne passent pas ici pq?
'Pourtant les .visible passent
'Paramétrages de la taille
Me.Height = 700
Me.Width = 900
' BtnDevis.Visible = False ok passe bien
If ChBoxDemandeDevis.Value = False Then
BtnDemandeDevis.Visible = False
Else
BtnDemandeDevis.Visible = True
End If
End Sub |
Dans l'état, "Erreur d'exécution '424' avec débogage :
Code:
1 2 3 4 5 6 7 8 9
|
Sub ouvrirFormAccueil()
' Ouvre le formulaire d'accueil
' Prévoir ouverture dés chargement du fichier
' lors de l'utilisation
'
FormAccueil.Show
End Sub |
sur FormAccueil.Show
Si je met la fonction If en commentaire, pas d'erreur...mais pas d'objectif non plus.
Pour info (suis trés trés débutant, mais j'ai bien cherché...)
Merci pour votre aide.;)
Test suivant vos conseils
Bonjour,
Merci pour vos réponses, mon objectif n'est pas atteind.
Code pour initialize :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
Private Sub UserForm_Initialize()
'Initialisation FormAccueil
'Les fonctions if ne passent pas ici pq?
'Pourtant les .visible passent
'Paramétrages de la taille
Me.Height = 700
Me.Width = 900
End Sub |
et donc la fonction activate
Code:
1 2 3 4 5 6 7
|
Private Sub UserForm_Activate()
' BtnDevis.Visible = False ok passe bien
BtnDemandeDevis.Visible = ChBoxDemandeDevis.Value
' BtnDemandeDevis.Visible = False ici cela ne fait pas d erreur...
End Sub |
Tjrs message d'erreur d'éxécution '424'...
En direct avec
Code:
BtnDemandeDevis.Visible = False
ça fonction:calim2:
Certainement une erreur de débutant, mais laquelle... Ailleurs dans le code !! mais que 3 formulaires avec boutons, textes, labels...
Codes neufs sur feuille vierge...
Messieurs Bon Dimanche,
Ci-dessous mes codes neufs...
Ouverture formulaire Accueil bouton associé à une macro
Code:
1 2 3 4 5 6
|
Sub OuvrirFormAccueil()
FormAccueil.Show
End Sub |
Formulaire Accueil avec 3 boutons :
- BtnDevis;
- BtnCommande;
- BtnParametre (ouvre FormParametre)
Formulaire Parametre avec 2 CheckBox :
- CBoxDevis avec Value True
- CBoxCommande avec Value True
Code de UserForm_initialize() du fomulaire Accueil
Code:
1 2 3 4 5 6 7
|
Private Sub UserForm_Initialize()
BtnDevis.Visible = CBoxDevis.Value
BtnCommande.Visible = CBoxCommande.Value
End Sub |
De suite Erreur d'éxecution '424' sur le code d'ouverture du FormAccueil.show...
Copie sur UserForm_Activate() et... idem !!!!
Le pire, en direct ça passe
Code:
1 2 3 4 5 6 7 8
|
Private Sub UserForm_Initialize()
BtnDevis.Visible = False
'BtnCommande.Visible = CBoxCommande.Value
End Sub |
Merci.
(Version d'EXCEL non piraté...)
Post de mon code en ligne
Messieurs,
J'apprends avec vos réponses, et post le code plutôt que le fichier...
Code de la macro
Code:
1 2 3 4 5 6 7
|
Sub OuvrirFormAccueil()
FormAccueil.Show
End Sub |
Formulaire Accueil avec 3 boutons : BtnDevis, BtnCommande et BtnParametre
Code FormAccueil
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
Private Sub BtnParametre_Click()
FormParametre.Show
End Sub
Private Sub UserForm_Initialize()
BtnDevis.Visible = CBoxDevis.Value
BtnCommande.Visible = CBoxCommande.Value
End Sub |
Code du Formulaire PARAMETRE
Code:
1 2 3 4
|
Private Sub BtnFermer_Click()
FormAccueil.Show
End Sub |
Avec 2 CheckBox ! CBoxDevis.value = TRUE et CBoxCommande.value = True dans les propriétées.
Message d'erreur : Erreur d'exécution '424': Objet requis
Ligne jaune sur FormAccueil.Show
Désolés de faire perdre du temps !
Tout le monde ne peut pas avoir votre niveau!!!
J'ai bien envie d'en écrire plus, mais je m'arrête là, ce n'est pas le rôle d'un forum.
Concernant mon erreur, je remarque un début d'explication et continue à chercher une solution.
Dans mon userform_initialize() du FormAccueil, j'appel bien un objet (ChBoxDevis) de l'autre formulaire FormParametre, qui semble-t-il est interdit...
Je découvre les faces cachées de la POO...:oops::oops:
Dorénavant je vais essayer avec une variable entre les deux formulaires.
Est-ce la meilleure solution, je ne sais pas, mais je cherche...
Merci.