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 :

lancer une macro en fonction de la valeur d'une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 79
    Points : 53
    Points
    53
    Par défaut lancer une macro en fonction de la valeur d'une cellule
    Bonjour à tous !

    Je vous explique, j'ai fait une liste déroulante à laquelle j'ai affecté une macro qui en lance une autre pour permettre le déplacement sur la feuille.
    Problème avec ce que j'ai tapé, (suite de if), la macro ne vérifie que la dernière valeur testée (logique en mem temps!).
    Je cherche à savoir s'il existe une fonction "ou" ou une autre technique pour lancer la macro que je veux en fonction de la valeur de cellule...

    Je vous mets mon code qui marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Macro81()
    Range("A79").Activate
    If Range("A79").Value = 10 Then
    Application.Run "'xxxxxxxxxx.xls'!Macro80"
    Else
    Range("A1").Select
    End If
    If Range("A79").Value = 9 Then
    Application.Run "'xxxxxxxxxx.xls'!Macro82"
    Else
    Range("A1").Select
    End If
    End Sub
    Si vous avez une idée...

    Merci beaucoup !!!!!

  2. #2
    Membre émérite
    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
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut arkorrigan
    Je cherche à savoir s'il existe une fonction "ou" ou une autre technique pour lancer la macro que je veux en fonction de la valeur de cellule...
    Oui, il existe une fonction logique OR en VBA, mais si tu expliquais où le mettre au lieu de donner un code qui ne fonctionne pas, on pourrait mieux t'aider!!
    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 79
    Points : 53
    Points
    53
    Par défaut
    OK, autant pour moi Gorfael !

    Alors je voudrais la placer entre les 2 if ... sachant qu'il y a 8 valeurs à tester...

    Mais je sais pas si ca peut le faire

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 364
    Points : 350
    Points
    350
    Par défaut
    Bonjour,

    A tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Macro81()
      Select Case Range("A7")
      Case 10
        Application.Run "'xxxxxxxxxx.xls'!Macro80"
      Case 9
        Application.Run "'xxxxxxxxxx.xls'!Macro82"
      End Select
    End Sub
    changement de code (pour un nombre de cas plus élevé)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 117
    Points : 74
    Points
    74
    Par défaut
    Bonjour,
    j'aurais plutôt dis comme gorfael, c'est à dire en utilisant or

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Macro81()
    Range("A79").Activate
    If Range("A79").Value = 10 or Range("A79").Value = 9  or ... Then
    Application.Run "'xxxxxxxxxx.xls'!Macro80"
    Else
    Range("A1").Select
    End If
    End Sub
    Cordialement

    EDIT : Totalement faux (merci fring), donc oublie ce message.

  6. #6
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour tlm,

    Papimcha, analyse ce que tu proposes.
    Peu importe si la cellule est égale à 10 ou 9 ou 8 ou ... tu exécutes la même macro, or ce n'est pas ce qui est demandé

    La solution avec Select Case est la bonne.

    Petite remarque, il faut que le classeur xxxxxxxx.xls soit préalablement ouvert, sinon ça va couiner
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 117
    Points : 74
    Points
    74
    Par défaut
    Oh oui,
    Je croyais que c'était la même macro à exécuter. A lire de travers, voila ce qui arrive.

  8. #8
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    bonjour,

    si les possibilité ne sont pas trop nombreuses, on pourrais proceder comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    'Exemple:
    '1. Construire tableau avec les huit possibilité
    dim tabMacro
    tabmacro=array("macro1","macro2","macro3",...)
     
    '2.Lancer la macro
    Application.run tabmacro(range("A79").value)
    On lancerais donc une macro par rapport à la valeur contenue dans la cellule.
    Alleï Bonjour chez vous!

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 79
    Points : 53
    Points
    53
    Par défaut
    merci à vous tous !

    En mixant vos propositions j'ai trouvé la soluce !
    celle de Ordonc est la plus efficace !!!!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/04/2013, 16h28
  2. Réponses: 4
    Dernier message: 01/02/2013, 15h01
  3. [XL-2007] Selection d'une image en fonction de la valeur d'une cellule en macro
    Par chevalrv dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/04/2012, 11h21
  4. Réponses: 5
    Dernier message: 07/05/2009, 16h41
  5. executer une macro quand on change la valeur d'une cellule
    Par Benwad dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 23/02/2009, 18h54

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