IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

bouton affichant (pas !) une userform


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 533
    Par défaut bouton affichant (pas !) une userform
    Bonsoir,
    J'ai créé un bouton associé à une macro qui devrait ouvrir un classeur (Des_Mots.xls) et afficher une userform (tablodebor). J'ai tout essayé, comme dit l'autre, mais j'y arrive pas
    Pour le moment j'en suis là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub OuvrirDesMots()
        Windows("des_mots.xls").Activate
            Dim mafeuille As UserForm
            Set mafeuille = ActiveWorkbook.UserForms.Add("tablodebor")
    End Sub
    J'obtiens: propriété non gérée par cet objet. Pourtant dans l'aide VBA l'un des exemples pour Userforms est justement Userforms.Add. Comprends pas.
    Que faire ?
    Merci de votre aide
    Cordialement
    Pierre

  2. #2
    Membre confirmé Avatar de Oh!Tofocus
    Profil pro
    Inscrit en
    Août 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 217
    Par défaut
    Bonsoir...
    essaye donc pour lancer l'UserForm

  3. #3
    Membre éclairé Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 533
    Par défaut bouton affichant (pas!) une userform
    Bonsoir Oh!Tofocus et merci,
    Je garde en note (j'avais déjà testé) mais pour l'instant ça bloque à la ligne précédente, sur .Add
    Le mystère
    Bonne soirée
    Pierre

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 101
    Par défaut
    Bonsoir,

    je sais pas quelle version de Excel tu as mais moi j'ai la 2000, je viens de regarder dans l'aide et Add n'est pas une méthode de la collections UserForms donc l'erreur que te renvoie le compilateur est plutôt logique.
    Si tu veux créer des UserForms par le code, il faut que tu cherches du côté de la création dynamique de UserForm, de contrôles, etc.

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Par défaut
    Bonsoir,

    Citation Envoyé par F1 Excel 2003
    La collection UserForms est l'ensemble des objets UserForm chargés dans une application. La collection UserForms possède une propriété Count et Item, ainsi qu'une méthode Add.
    De ce que j'en sais cette méthode n'est utile que lorsque on importe un userform dans le projet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Test1() 'Ceci ne fonctionne pas
        'Avec Option Explicit erreur de compilation
        'Sans Option Explicit erreur d'execution Objet requis
        MsgBox UserForms.Count '0
        ActiveWorkbook.VBProject.VBComponents.Import ("C:\...\MonFormulaire.frm")
        MsgBox UserForms.Count '0
        MonFormulaire.Show
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Test2() 'Ceci fonctionne
        Dim Formulaire As Object
        MsgBox UserForms.Count '0
        ActiveWorkbook.VBProject.VBComponents.Import ("C:\...\MonFormulaire.frm")
        MsgBox UserForms.Count '0
        Set Formulaire = UserForms.Add("MonFormulaire")
        MsgBox UserForms.Count '>>>>>> 1
        Formulaire.Show
    End Sub
    Alors que dans les deux cas le formulaire est bien visible dans l'explorateur de projet.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub OuvrirDesMots()
        Windows("des_mots.xls").Activate
            Dim mafeuille As UserForm
            Set mafeuille = ActiveWorkbook.UserForms.Add("tablodebor")
    End Sub
    J'obtiens: propriété non gérée par cet objet. Pourtant dans l'aide VBA l'un des exemples pour Userforms est justement Userforms.Add. Comprends pas.
    L'objet auquel le message fait référence est ActiveWorkbook qui n'a effectivement pas de propriété Userforms.

    Que faire ?
    Si tu veux lancer un formulaire nommé tablodebor existant dans le classeur Des_Mots.xls depuis un autre classeur il te suffit d'inclure dans le classeur Des_Mots.xls une procédure qui affiche ce formulaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub AfficheTablodebor()
        tablodebor.Show
    End Sub
    Puis d'appeler cette procédure:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub OuvrirDesMots()
        Windows("des_mots.xls").Activate
        'Le fichier des_mots.xls doit etre ouvert
        Application.Run "des_mots.xls!AfficheTablodebor"
    End Sub
    Bonne nuit,

    Tirex28/

  6. #6
    Membre éclairé Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 533
    Par défaut bouton affichant userform
    Bonjour,
    Grand merci à tirex28, ça marche . Décidément, mes lacunes sont béantes.
    Mais, car il y a un mais, et même deux:
    Le bouton en question n'affiche pas sa caption. Pourtant mon code a l'air identique à celui de l'aide VBA_XL (au mot Caption):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub ajouteBouton()
    Dim MonBouton As CommandBarButton
    Set MonBouton = CommandBars("standard").Controls.Add(Type:=msoControlButton)
    With MonBouton
        .Caption = "Oulip"
        .OnAction = "OuvrirDesMots"
        .State = msoButtonUp
        .Tag = "Btn_Oulip"
        .TooltipText = "Lance la manip"
    End With
    End Sub
    Bizarre: le texte de la bulle s'affiche, lui !
    Et second "mais": comment me débarrasser de la fenêtre "Les macros peuvent contenir des virus...etc." ?
    Merci pour toute piste.
    Cordialement
    Pierre

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    Par défaut
    Bonjour,

    Pour le caption, peut être faut il definir le style du bouton ? (je suis pas sur...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        .Caption = "Oulip"
        .OnAction = "OuvrirDesMots"
        .State = msoButtonUp
        .Tag = "Btn_Oulip"
        .TooltipText = "Lance la manip"
        .Style = msoButtonIconAndCaption  'Bouton texte et image
        .FaceId = 25 'image de ton bouton
    Pour les alertes Macro, moi j'ai mis un niveau de sécurité "faible". (Outil --> Macro --> Sécurité) Attention toutefois quand tu ouvre un fichier que tu ne connais pas....

    Espérant t'avoir aidé,

    Je te souhaite une bonne journée

  8. #8
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Par défaut
    Re,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With MonBouton
        '..
        .Style = msoButtonCaption
        '..
    End With
    Cordialement,

    Tirex28/

  9. #9
    Membre éclairé Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 533
    Par défaut bouton affichant (pas !) une userform
    Bonjour,
    Cette fois elle affiche ! Merci à Guidhy (tu peux être sûr, maintenant) et à tirex28. Seul regret: j'ai pas trouvé tout seul
    Où est donc ce bouton Résolu ? Ah oui !
    A bientôt.
    encore merci à tous
    Pierre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Images] Image captcha ne s'affiche pas une fois sur le serveur
    Par yfchauer dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 15/09/2013, 15h16
  2. [IE8] n'affiche pas UNE image
    Par LordVoid dans le forum Windows
    Réponses: 3
    Dernier message: 31/08/2010, 15h21
  3. [VBA]N'afficher qu'une userform ?
    Par belocom dans le forum Général VBA
    Réponses: 3
    Dernier message: 03/05/2007, 14h56
  4. [VBA-E] Evenement associé au bouton crée dans une userform
    Par AH... dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/02/2007, 14h06
  5. n'affiche pas une image arriere plan definis dans une CSS
    Par mikebranque dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 30/06/2006, 15h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo