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 :

envoi de parametre a une procedure SUB. [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 29
    Par défaut envoi de parametre a une procedure SUB.
    Bonjour,

    je souhaite envoyer des workbooks a une SUB, pour pouvoir naviger entre plusieurs classeur au sein de la procedure.

    j'ai procédé comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Workbooks.Open (Repertoire.SelectedItems(1))
    Set wbsource = ActiveWorkbook
    ...
    Workbooks.Add
    Set wbdestination = ActiveWorkbook.Worksheets(1) 
    ...
    Call MiseEnForme(wbsource, wbdestination)
     
    'en Module
    Sub MiseEnForme (WbMacro as workbook, WBdest as workbook)
     
    WbMacro.activate ' !!!!!!!erreur ... objet recquis... !!!!!
    ...
    end sub
    je suis "débutant" et je souhaiterais savoir si algorithmiquement parlant, je fait correctement le transfert de variable.

    si oui, pourquoi j'ai une erreur.

    merci pour vos lumieres.

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Bonjour,
    QUestion est ce que tu déclare tes variables?
    A mon avis non et ca te permettrai d'éviter des erreurs. Alors je te conseil de passer en option explicite toutes tes macro et de faire une jolie déclaration.
    http://mhubiche.developpez.com/Access/variables/

    Pour ton problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set wbdestination = ActiveWorkbook.Worksheets(1)
    C'est une worksheet
    tu déclarera donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim wbdestination  as worksheet
    Mais dans la procédure appelé tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sub MiseEnForme (WbMacro as workbook, WBdest as workbook
    )

    et l'appelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call MiseEnForme(wbsource, wbdestination)
    Tu met en deuxième argument une worksheet alors que ta procédure demande un workbook.
    Je te laisse corriger ca faire tes déclaration si tu as le courage, et ensuite regarde si ca suffit comme correction

  3. #3
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 29
    Par défaut
    effectivement j'envoyai un worksheet alors que la procedure attendait un workbook

    j'ai declaré mes variables et modifié mon code. ca marche nickel

    merci beaucoup pour ton aide.

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

Discussions similaires

  1. passer une textbox en parametre d'une procedure sub
    Par gilles_906 dans le forum VB.NET
    Réponses: 3
    Dernier message: 02/04/2011, 15h11
  2. [SQL]Envoie de mail par une procedure
    Par yoyopi dans le forum DB2
    Réponses: 19
    Dernier message: 22/02/2008, 16h30
  3. Réponses: 12
    Dernier message: 01/03/2007, 11h07
  4. Passer une ligne en parametre dans une procedure
    Par schnourf dans le forum Oracle
    Réponses: 5
    Dernier message: 08/06/2006, 15h29
  5. Type complexe en parametre dans une procedure stockée
    Par Tsimplice dans le forum Oracle
    Réponses: 2
    Dernier message: 06/10/2005, 02h42

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