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 :

Passage d'un paramètre excel.workbook à un userform


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Septembre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 9
    Par défaut Passage d'un paramètre excel.workbook à un userform
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public datasource
    sub monprogramme ()
    Dim datasource As Excel.Workbook
    Set datasource = Workbooks.Open("S:\SAT-DOC\macros\Données pour macros\Données_fiches-maintenance.xls")
    Dans 'monprogramme' je peux utiliser sans autres la variable 'datasource'
    Par ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(Index, 1).Value = datasource.Worksheets("TXT").Cells(2, 3).Value
    Par contre pas dans les userform
    j'obtiens le message d'erreur
    erreur d'exécution '424' objet requis
    Je ne comprends pas pourquoi car j'ai déclaré datasource 'public'

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,


    Par contre pas dans les userform
    j'obtiens le message d'erreur
    erreur d'exécution '424' objet requis
    Je ne comprends pas pourquoi car j'ai déclaré datasource 'public'
    Peux tu montrer, ce que tu veux faire et la ligne de code qui te renvoi cette erreur ?

  3. #3
    Membre habitué
    Inscrit en
    Septembre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 9
    Par défaut
    Si je le programme ainsi, tout va bien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub UserForm_initialize()
    With ListBox1
    compteur = 1
        While Workbooks("Données_fiches-maintenance").Sheets("GROUPES").Cells(compteur, 1).Value <> "XXX"
            .AddItem Workbooks("Données_fiches-maintenance").Sheets("GROUPES").Cells(compteur, 1).Value
            compteur = compteur + 1
       Wend
    End With
    ListBox1.ListIndex = 0
    ListBox1.MultiSelect = fmMultiSelectSingle
    End Sub
    Par contre si je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     While datasource.Sheets("GROUPES").Cells(compteur, 1).Value <> "XXX"
            .AddItem datasource.Sheets ("GROUPES").Cells(compteur,  1).Value
    j'obtiens le message d'erreur 424

  4. #4
    Membre expérimenté
    Inscrit en
    Août 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2009
    Messages : 284
    Par défaut
    Tu ne peux pas utiliser des variables public avec un userform je croix, donc soit tu remets dans le userform
    Soit tu fait comme tu l'as ecrit.

    Mais je peux me tromper

  5. #5
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,

    Tu déclare ta variable 2 fois en public et dim => les portées ne sont pas les mêmes ton erreur vient de là.
    J'ai fait l'essai et je retrouve bien ta variable à l'initialize de l'userform

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public datasource
    sub monprogramme ()
    ' Dim datasource As Excel.Workbook '=>mise en commentaire
    ' Ton code
    Un lien pour les variables ici


    Edit :
    Mais je peux me tromper


    Edit2: Travailler avec des variables globales est délicat et je préfère m'en passer en général. Il existe plusieurs solutions de contournement, enregistrer les valeurs dans une cellule, passer des paramètres, sauvegarder dans la base de registre, définir des variables nommées...

  6. #6
    Membre habitué
    Inscrit en
    Septembre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 9
    Par défaut
    MERCI.
    Ce forum est génial.
    Je suis un vieux dinosaure qui a appris à programmer en FORTRAN et PASCAL. A l'époque - sans Internet -on était seul au fond de sa cave pour programmer.
    Maintenant c'est une pure partie de plaisir.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/01/2011, 10h24
  2. [XL-2003] Passage paramètre Excel
    Par Nheil dans le forum Excel
    Réponses: 2
    Dernier message: 04/06/2010, 12h41
  3. [SQL Server] Passage d'un paramètre dans une procédure
    Par navis84 dans le forum Bases de données
    Réponses: 3
    Dernier message: 14/01/2005, 13h19
  4. Passage d'un paramètre d'une fenêtre à une autre ?
    Par almisuifre dans le forum C++Builder
    Réponses: 10
    Dernier message: 06/12/2004, 22h42
  5. [VBA EXCEL] Réduire/Agrandir UserForms
    Par Fench dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/11/2003, 16h02

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