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 :

boucle et fonction [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
    Mai 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 29
    Par défaut boucle et fonction
    Bonjour,
    Dans une procédure, j'ai un grand nombre de fonction à appeler, qui plus est, variable. Elles ont toutes un nom de la même forme, disons fonction01, fonction02, ...
    Comment faire une boucle qui les appelle successivement ? Suis-je obligé de créer dynamiquement la procédure qui doit appeler ces fonctions ?
    Merci !

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Bonjour,

    As-tu tenté un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 1 to 100
        Call Fonction & i
    Next
    Ca appellera tes fonctions "Fonction1", "Fonction2" etc...

    Je ne sais pas si ça marche, tu n'as qu'à tenter pour moi

    EDIT : ça ne marche pas mais on va bien trouver autre chose

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Ah ben j'ai trouvé. C'est moins compliqué que ça en a l'air.

    Dans un premier module tu mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub fonction1()
        MsgBox "test1"
    End Sub
     
    Sub fonction2()
        MsgBox "test2"
    End Sub
    Puis, dans un second (pas le même !) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub main()
        Dim temp As String
        temp = ""
     
        For i = 1 To 2
            temp = "fonction" & i
            Run temp
        Next
    End Sub
    Je viens de tester, ça marche niquel. A toi d'adapter en fonction du nombre de procédures que tu as et de leur nom

    bonne chance pour la suite !

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut DeaD78 et le forum
    Sans trop me fouler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub main()
        Dim temp As String
        temp = ""
     
        For i = 1 To 2
            temp = "fonction" & format(i,"00")
            Run temp
        Next
    End Sub
    Pour répondre au sujet initial
    A+

  5. #5
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 29
    Par défaut
    merci à vous deux !
    mes fonctions ayants des arguments, j'ai du créer d'autres procédures pour utiliser les fonctions, en mettant certains arguments en variables publiques (dans mon exemple, k et l)
    Je mets (de mémoire) le code utilisé, sorte de "compil" des deux solutions proposées, au cas où ça serve à quelqu'un...
    L'exemple remplit un ensemble de cellules de la worksheet "ma_feuille" avec le résultat de la fonction_i, où chaque colonne i utilise une fonction_i différente

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    sub model_i()
    sheets("ma_feuille").cells(k,i) = fonction_i(a,b,c,d)
    end sub
     
     
    sub boucle_model()
    dim temp as string
    for i = 0 to nb_model
         temp = "model" & format(i,"00") 
         run temp
    next i
    end sub

  6. #6
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 120
    Par défaut
    Salut
    F1 sur Run t'aurait donné la solution, il y a une série d'argument que tu peux mettre a la suite et qui représente les argument de ta function
    En reprenant un des exemple plus haut.

    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
    19
    Sub fonction1(Texte1 As String, InTest1 As Integer)
        MsgBox Texte1 & Str(InTest1)
    End Sub
     
    Sub fonction2(Texte2 As String, InTest2 As Integer)
        MsgBox Texte2 & Str(InTest2)
    End Sub
     
     
     
    Sub main()
        Dim temp As String
        temp = ""
     
        For i = 1 To 2
            temp = "fonction" & i
            Run temp, "Peut etre", 10
        Next
    End Sub
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

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

Discussions similaires

  1. [AJAX] interface boucle retour fonction Ajax dans code Php
    Par sami117 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/02/2009, 19h41
  2. boucles en fonction d'une variable
    Par Onita dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 20/10/2008, 21h27
  3. [Mail] Boucle sur fonction mail()
    Par Invité dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2007, 22h26
  4. Boucle et fonction
    Par maxos75 dans le forum ASP
    Réponses: 7
    Dernier message: 09/01/2006, 12h53
  5. Sortir d'une boucle en fonction d'une durée
    Par BECHE dans le forum Langage
    Réponses: 8
    Dernier message: 30/11/2005, 11h08

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