Une procédure Sub pour plusieurs UserForm avec VBA et excel 2000

beaujack Messages postés 3 Date d'inscription dimanche 11 mai 2003 Statut Membre Dernière intervention 3 décembre 2008 - 3 déc. 2008 à 12:22
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 3 déc. 2008 à 16:38
Bonjour,

Programme avec  VBA et Excel 2000

Comment faire pour exécuter la même procédure Sub  pour plusieurs UserForm. Je m'explique simplement :

Quand je clique sur le Bouton1 je dois ouvrir le Userform1,
Quand je clique sur le Bouton2 je dois ouvrir le Userform2....et cela jusqu'à 5 UserForm.
Je pensais faire comme ci-dessous

Private Sub CommandButton1_Click()
    Call Procédure_A ("Userform1")
End Sub
Private Sub CommandButton2_Click()

    Call Procédure_A ("Userform2")
End Sub

Sub Procédure_A (UserForm1 ou UserForm2 ......ou UserForm5)
        With UserForm1 ou UserForm2 ......ou UserForm5
             .StartUpPosition = 3
             .Width = Application.Width
             .Height = Application.Height
             .Left = 0
             .Top = 0
       End With

End Sub

Je n'ai rien trouvé sur les forums concernant le passage d'un Userform comme paramètre à une procédure Sub

Merci d'avance de vos solutions

3 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
3 déc. 2008 à 12:34
salut,

Call Procédure_A (Userform1) 'sans guillemet, c'est l'objet qu'on passe, pas son nom

Sub Procédure_A (byref oUF as UserForm) 'on passe PAR RéFéRENCE un objet nommé oUF, de type USERFORM
        With oUF 'on travaille sur l'objet passé

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
0
beaujack Messages postés 3 Date d'inscription dimanche 11 mai 2003 Statut Membre Dernière intervention 3 décembre 2008
3 déc. 2008 à 15:53
Merci PCPT  d'avoir répondu aussi vite mais ça ne marche pas pourquoi ?.....
Voila ce que j'ai fait  en petit programme pour test qui a 3 UserForm

Rappel : je suis avec Windows XP Pro et  Excel 2000

A partir de l' UserForm3 qui a 2 boutons CommandButton1 et CommandButton2
Je veux ouvrir et mettre en pleine page l' UserForm1 avec le CommandButton1  ou UserForm2 avec le CommandButton2

Private Sub CommandButton1_Click()
    Call Procédure_A (UserForm1)
End Sub

Private Sub CommandButton2_Click()
    Call Procédure_A (UserForm2)
End Sub

Sub Procédure_A (ByRef oUF As UserForm)
    oUF.Show
    With oUF
        .StartUpPosition = 3
        .Width = Application.Width
        .Height = Application.Height
        .Left = 0
        .Top = 0
    End With
End Sub

Dès l'instruction oUF.Show, j'ai le message Erreur d'exécution "438"
Propriété ou méthode non gérée par cet objet.

Merci d'avance de vos réponses
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
3 déc. 2008 à 16:38
en effet idem chez moi, même avec "MSForms.UserForm" au complet
les méthodes show et autres propriétés comme width height etc ne sont pas accessibles

l'aide locale n'indique rien de particulier
un VBAiste te renseignera peut-être, patience

<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
0
Rejoignez-nous