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 :

Equation logique d'exécution de macro [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 12
    Points : 11
    Points
    11
    Par défaut Equation logique d'exécution de macro
    Bonjour à tous !

    J'ai très peu de connaissance sur excel, donc ma question risque d'être un peu ridicule pour la plupart d'entre vous. Malgré des recherches, et lecture de cet article sur ce site:
    http://silkyroad.developpez.com/Exce...ionsExcel/#LIX

    J'ai rien trouvé ...

    Alors voici mon soucis:
    J'ai 3 macros dans mon fichier excel, et je voudrais les éxécuter à partir de la lecture d'une cellule.

    Pour être plus clair,
    Dans la case A1 l'utilisateur va rentré 3 choix possibles: X, Y, Z.
    Si il y a "X" il éxécute la macro "macro_X", si il y a "Y" la macro "macro_Y" et pour "Z" la macro "macro_Z" .... et si il y a rien ben je voudrais qu'il ne fasse rien. Mais je ne sais pas comment le faire "comprendre" à excel ...

    J'ai écris deux formules qui (je pense) fonctionnent:
    le "NoData" est ce que la partie qui me pose problème.

    1)
    =SI(ESTTEXTE(A1);macro_x;SI(ESTTEXTE(A2);macro_y;SI(ESTTEXTE(A3);macro_z;NoData)))

    2)
    =SI(NB.SI(A1;"*Small*"); CopyWeighingSmall;SI(NB.SI(A2;"*Medium*");CopyWeighingMedium;SI(NB.SI(A3;"*Large*");CopyWeighingLarge;NoData)))

    Bref merci de votre aide, et excusez les quelques fautes qui doivent trainer sur ce topic.

    Cordialement.

  2. #2
    Membre chevronné Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Points : 2 131
    Points
    2 131
    Par défaut
    Tu parles d'une macro qui exécute des actions ou d'une fonction qui te renvoie un résultat.
    Si c'est le premier cas, tu ne t'y prends pas de la bonne manière. Il faut que tu mettes le code suivant dans l'évènement Worksheet_Change de la feuille contenant ta cellule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Worksheet_Change(ByVal Target As Range)
        Select Case Target.Value
        Case "X"
            macro_x
        Case "Y"
            macro_y
        Case "Z"
            macro_z
        End Select
    End Sub
    « Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
    « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    Bonjour ZebreLoup,

    Les deux formules que j'ai écrite sur mon topic, je l'ai mis dans la cellule juste en dessous (A2).

    J'ai pas fait les macro, pour faire simple j'ai repris le travail d'un autre (je suis en entreprise).

    Pour moi c'est une fonction qui exécute tel macro selon les cas (donc le texte rentré dans la cellule A1) et cela permet de mettre en place des valeurs par défauts dans les autres feuilles du classeur.

  4. #4
    Membre chevronné Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Points : 2 131
    Points
    2 131
    Par défaut
    Tu ne peux pas utiliser une formule personnalisée pour exécuter des tâches. Je n'ai pas bien compris ce que tu voulais faire exactement, mais ton approche doit être différente.
    « Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
    « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    Je vais expliquer plus simplement:

    On vas imaginer que je fais un devis automatique pour une gamme de PC. Dans un fichier excel, tu as La page de présentation (où tu choisie la gamme que tu veux) et une autre page contenant la fiche avec les caractéristiques de la gamme sélectionner. On a le choix entre ces 3 gammes:

    Gamme Pro
    Gamme Famille
    Gamme Joueur

    Tu dois rentrer ces informations dans la cellule spécifiée (A1). Donc si tu met "Gamme Pro" et que tu vas sur la seconde feuille. Tu constate que les valeurs (prix, modèles et etc) sont mis en place de manière automatique. En fonction de la réponse entrer par l'utilisateur dans la case A1 de la première feuille.

    Donc je ne peux pas utiliser de formule pour cette tâche .... hum ... sachant que je ne sais pas comment on fait des macro ... je vais allé voir dans les tutos exels ...

    Mais si tu es d'accord pour me donner la procédure (comme j'ai déjà le code) je ne dit pas non. Dans la cas contraire je comprend, c'est mieux d'apprendre par soi même que récupérer le travail d'un autre personne.

    Merci pour tes réponses en tout cas !

  6. #6
    Membre chevronné Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Points : 2 131
    Points
    2 131
    Par défaut
    Tout d'abord, il est possible que tu puisses t'en sortir avec seulement des formules. Si ce n'est pas le cas et qu'il te faut des macros, il faut passer ma solution, j'avais oublié d'ailleurs de filtrer la cellule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Row = 1 And Target.Column = 1 'Si la case de choix est en A1
            Select Case Target.Value
            Case "X"
                macro_x
            Case "Y"
                macro_y
            Case "Z"
                macro_z
            End Select
        End If
    End Sub
    « Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
    « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    J'ai appliqué tes conseils, j'ai fait la macro. Maintenant je vais chercher seul comment exécuter des macros à partir d'une macro.

    Merci pour ton aide ! Ce sujet est à présent résolu.

    A bientôt.

    Zakhar

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

Discussions similaires

  1. comment forcer l'exécution des macros pour une seule base ?
    Par tristan_sauvage dans le forum Access
    Réponses: 4
    Dernier message: 21/08/2006, 11h59
  2. Exécution de macro Excel
    Par pepe2006 dans le forum Access
    Réponses: 7
    Dernier message: 16/08/2006, 14h05
  3. [ODBC] Exécuter la macro AutoExec d'une BD Access
    Par tigzirt dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/05/2006, 08h31
  4. [VB6] Exécuter une macro Access
    Par Nektanebos dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 22/02/2006, 16h32
  5. Exécution de macro à des heures différentes.
    Par pepe2006 dans le forum Access
    Réponses: 5
    Dernier message: 14/09/2005, 11h44

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