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 :

Creation et appel de fonction avec parametre


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
    Juillet 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 12
    Par défaut Creation et appel de fonction avec parametre
    Bonjour,

    Je souhaiterais a partir d'un programme principal, faire appel a une fonction avec un worksheet en entree. De cette maniere je pourrais faire les modifications sur plusieurs worksheet avec une seule fonction.

    Merci de me donner la bonne syntaxe

    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
    Dim ws1 As Worksheet
    Dim ws2 As Worksheet
     
    Sub Modfication(ws As Worksheet)
    'modifications on ws......
    End Sub
     
    Sub Main()
    Set ws1 = Worksheets("Feuil1")
    Set ws2 = Worksheets("Feuil2")
     
    Modfication (ws1)
    Modfication (ws2)
     
    End Sub
    merci encore

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    si c'est une fonction que tu veux faire, il faut faire une fonction et non une procédure.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public function Modfication(ws As Worksheet)
    'modifications on ws......
    End Function

  3. #3
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Citation Envoyé par jfontaine
    si c'est une fonction que tu veux faire, il faut faire une fonction et non une procédure.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public function Modfication(ws As Worksheet)
    'modifications on ws......
    End Function
    Je ne crois pas. Par définition, une fonction retourne une valeur. À moins que gregounet (mignon le pseudo) désire avoir une réponse du genre True si l'opération est réussie et False si ça a foiré quelquepart. Pas très parlant. Ou encore en gérant les code d'erreur... mais ça peut tout aussi bien se faire dans une procédure (sub).

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    tu peux essayer sous cette forme, ça marche, j'ai testé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Modfication(ws)
    Set u = Worksheets(ws)
    u.Cells(1, 1) = u.Name
    End Sub
     
    Sub Main()
     choix = InputBox("choisir_n°_de_feuille")
     choixws = "feuil" & choix
    Modfication (choixws)
    End Sub
    naturellement, c'est le principe, a toi de voir pour les déclarations et les erreur si la saisie n'est pas bonne dans l'inputbox

  5. #5
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 12
    Par défaut
    Merci a toutes et a tous de votre rapidite de reponse !

    D'apres ce que vous me dite, je vais utiliser une procedure car je n'ai pas besoin de retourner une valeur.

    En ce qui concerne mes procedures, j'ai une erreur quand j'appelle la procedure: Run-time error '438'. Je pense que j'ai un probleme de declaration
    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
    16
    17
    18
    Dim ws1 As Worksheet
    Dim ws2 As Worksheet 
    Dim u As Worksheet 
     
    Sub Modfication(ws)
    Set u = Worksheets(ws)
    'modifications sur u
    End Sub
     
    Sub Main()
     
    Set ws1 = Worksheets("Feuil1")
    Set ws2 = Worksheets("Feuil2")
     
    Modfication(ws1)
    Modfication(ws2)
     
    End Sub
    Merci beaucoup

  6. #6
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    J'ai dans une de mes applications, le même besoin que toi.
    Mais au lieu de passer en paramètre la feuille, je passe le nom de la feuille.

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

Discussions similaires

  1. Appel de fonction avec parametre dans un setTimeOut
    Par jfv.work dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/01/2012, 17h16
  2. Appel de fonction avec parametre dans fonction
    Par VooDooNet dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 03/05/2010, 18h40
  3. [debutant] Appel de fonction avec parametre undefined
    Par Jean_pierre dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/03/2009, 21h38
  4. Appeler une fonction avec un tableau en parametre ?
    Par devoluti0n dans le forum C++
    Réponses: 9
    Dernier message: 11/04/2008, 16h21
  5. appel d'une fonction avec parametre.
    Par rollernox dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/10/2006, 23h07

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