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 :

Problème appel autre macro avec Call


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2015
    Messages : 211
    Par défaut Problème appel autre macro avec Call
    Bonjour,

    Je ne comprends pas où se trouve l'erreur de code ( ou d'écriture ). En effet, suivant la valeur de la variable "ly", il faut faire appel à telle ou telle macro ( ou sous macro ). J'ai tout d'abord utilisé la propriété "Select Case"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
         Select Case ly
         Case Is = 1
           Call caumont
         Case Is = 2
           Call Lemonnier
    ........
          Case Else
           Call Monnet
         End Select
    VBA me dit : Utilisation incorrecte de la propriété ( en surlignant "Call caumont" )

    J'ai donc utilisé la propriété IF ELSEIF ELSE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        If ly = 1 Then
              Call caumont
           ElseIf ly = 2 Then
              Call Lemonnier
           ElseIf ly = 3 Then
              Call oasis
    ...
           Else
             Call Monnet
       End if
    Même Remarque de VBA

    Pour information, "ly" peut prendre 52 valeurs différentes ( de 1 à 52 ). N'est-ce pas trop ? Si oui comment faire ?
    Merci d'avance pour vos réponses.

    Novice72

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour,

    avant de chercher dans tes case et IF ... regarde si la ligne que tu veux conditionner "fonctionne" seule ...

  3. #3
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2015
    Messages : 211
    Par défaut Réponce à bbil
    Merci pour ta réponse très rapide.
    J'ai bien lu ton message ( en rouge ) avant de répondre à cette discussion. Excuses moi. d'avoir écrit ici.
    Maintenant, tu as raison j'avais oublié de définir les variables dans les macros ( ce qui me provoquait sas doute cette erreur ).
    Je vais maintenant réparer cet oubli, tester et la prochaine fois écrire au bon endroit.




    Cordialement
    Novice72

  4. #4
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2015
    Messages : 211
    Par défaut appel macro se trouvant dans Module1
    Bonjour,
    j'ai déjà réussi à appeler une macro à partir d'une autre macro quand les 2 se trouvaient dans le même module ( module1 ).
    Maintenant, le problème se complique pour moi.
    J'ai un programme lancé par un bouton OK d'USERFORM. Dans cette userform, plusieurs choix me sont proposés Mais :
    SUIVANT LA VALEUR D'UNE VARIABLE ( que j'ai appelé "ly" comme lycée ) je veux ouvrir telle ou telle macro
    ( "ly" peut prendre toutes les valeurs de 1 à 52 donc il y a 52 macros correspondantes ).
    voici ce que j'ai écrit avec l'instruction "case"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
         Select Case ly
         Case Is = 1
           Call caumont
         Case Is = 2
           Call Lemonnier
    ........
          Case Else
           Call Monnet
         End Select
    Ne fonctionnant pas car VBA me dit : Utilisation incorrecte de la propriété ( en surlignant "Call caumont" )
    j'ai donc utilisé les instructions If Elseif Else que voici


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        If ly = 1 Then
              Call caumont
           ElseIf ly = 2 Then
              Call Lemonnier
           ElseIf ly = 3 Then
              Call oasis
    ...
           Else
             Call Monnet
       End if
    Là aussi j'ai la même remarque qu'avec l'instruction "case".

    bbil m'a demandé de véridier la macro seule ( ce que j'ai fait car fonctionne maintenant ).

    Ma question est donc : COMMENT APPELER UNE MACRO D'UN MODULE1 A PARTIR D'UN USERFORM ?


    Merci d'avance.

    Novice72

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par Novice72 Voir le message
    ...bbil m'a demandé de véridier la macro seule ( ce que j'ai fait car fonctionne maintenant ).
    ..
    montre nous le code que tu as utilisé pour essayer l'appel de ta "macro seule" (sans tous tes IF et Case...)

    montre nous aussi le code qui te sert à déclarer ta procédure caumont

  6. #6
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2015
    Messages : 211
    Par défaut
    Bonjour,
    Je n'ai pas de code qui appelle la macro seule.

    Soit je vais dans excel / developpeur / Macros / et je clique sur n'importe quel lycée ( ça a l'air de fonctionner puisque j'ai des cellules qui varient sur une feuille )

    Soit je rentre dans le code de la macro et je fais F5 ( exécuter la macro ) avec le même résultat.

    Pour moi, quand j'appelle une macro c'est soit à partir d'un userform avec lequel on fait un choix
    soit avec un bouton
    soit avec une instruction CALL dans une autre macro.....


    Bref, le mieux je pense et que je te donne un bout mon programme. Le problème est que mon fichier fait 8,27Mo. Comment faire ?
    Je vais supprimer quelques userforms dans mon fichier d'origine afin qu'il soit moins lourd puis je te l'envoie.

    A tout à l'heure et encore merci.
    Novice72



    Merci de t'intéresser à mon problème et merci d'avance.

    Novice72

  7. #7
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    ...
    Citation Envoyé par Novice72 Voir le message
    soit avec une instruction CALL dans une autre macro.....
    et alors cela fonctionne ? montre le code d'appel entre balise .!

    Nota : Pour ton fichier joint merci de relire cela : Fichier joint dans vos discussions

  8. #8
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2015
    Messages : 211
    Par défaut
    on ça ne marche pas avec l'instruction CALL
    Je vaix essayer avec un français correct de m'expliquer :
    j'ai une macro lancée depuis un bouton se trouvant dans un userform.
    Dans cette macro il y a une variable qui s'appelle "ly"
    Suivant la valeur de cette variable ( qui peut prendre tout entier compris entre 1 et 52 ), je veux ouvrir la macro correspondant à la valeur de "ly" ( ex : si ly=1 je fait "Call caumont" mais ça ne marche pas )....

    comment appelle-ton une macro dans le module 1 alors que je suis dans mon userform

    Cordialement

    Merci d'avance pour votre réponse

    Novice72

  9. #9
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Bonjour.

    Mets une commande Stop dans ton code pour en interrompre l'execution. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     Select Case ly
      Stop
         Case Is = 1
           Call caumont
         Case Is = 2
           Call Lemonnier
    ........
          Case Else
           Call Monnet
         End Select
    Puis utilise la touche F8 a plusieurs reprises pour continuer l'execution Pas A pas jusqu'a ce que tu arrives a la ligne qui provoque l'erreur.

  10. #10
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    MAIS PAS PAR DU TEXTE ?????
    Pourquoi crier ?
    L'exemple que j'ai posté c'est juste pour que tu puisse comprendre le fonctionnement de l'appel d'une procédure selon la valeur d'une variable après, que ce soit sur "Click" d'un bouton et comme le dis Patrick, sur n'importe quel autre évènement, ou encore de la manière que tu veux, si tu lance le code qui est attaché au bouton tu aura une des macro qui sera appelée !
    D'un autre coté, bbil t'a posé une requête qui est restée sans réponse de ta part :
    je te demande juste le code que tu utiliserais pour appeler ta macro sans aucun tests parasites ... juste ton CALL et dis nous si cela fonctionne...
    Hervé.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Hormis les is = qui en l'espèce ne sont pas utiles, le select case est plus maintenable que les if imbriqués et il est correcte!

    Effectuer un branchement à une. Sub routine avec un call, pourquoi pas!

    Reste, par élimination, à regarder du côté du caumont!

  12. #12
    Membre expérimenté
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Novembre 2013
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2013
    Messages : 120
    Par défaut
    Bonjour,

    Plus simplement, pour appeler une autre fonction, il ne faut pas mettre les parenthèses après le nom de la macro ? Dans son cas il y a peut être des arguments dans ces différentes fonctions et c'est peut être la que ça coince.

    Par exemple :


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

Discussions similaires

  1. [Windows Phone 8] problème appel de webservice avec une methode async ne fonctionne qu'une fois
    Par slacky dans le forum Windows Phone
    Réponses: 0
    Dernier message: 18/05/2015, 13h39
  2. [Batch] Appel de macro avec paramètres
    Par dewey01 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 03/02/2011, 14h22
  3. [XL-2003] Appeler une macro avec paramètres
    Par Raptang dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 26/08/2010, 08h29
  4. macro avec call symput
    Par kabstat dans le forum Macro
    Réponses: 14
    Dernier message: 04/07/2008, 23h08
  5. probléme appel de macro
    Par bryce426 dans le forum C++
    Réponses: 5
    Dernier message: 02/01/2008, 11h21

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