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 :

[VBA-E] OnAction/OnTime avec paramètre(s) [Trucs & Astuces]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Supply Chain Manager
    Inscrit en
    Octobre 2002
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Supply Chain Manager

    Informations forums :
    Inscription : Octobre 2002
    Messages : 33
    Points : 40
    Points
    40
    Par défaut [VBA-E] OnAction/OnTime avec paramètre(s)
    Bonjour,

    Je cherche à attribuer dynamiquement une macro à un bouton, mais je veux passer un paramètre à cette macro:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ActiveSheet.Shapes.AddShape(msoShapeStripedRightArrow, x, y, 50#, 15#).Select
       With Selection
       .Name = NomShape
       .ShapeRange.Fill.Solid
       .ShapeRange.Fill.ForeColor.SchemeColor = 57
       .ShapeRange.Line.ForeColor.SchemeColor = 64
       .OnAction = "OuvrirMRP(" & Trim(Str(Ligne)) & ")"
       End With
    Mais voilà, j'ai une erreur

    1004: Impossible de définir la propriété OnAction de la classe Rectangle"
    Quelqu'un a une idée?
    Merci!

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Tu dois définir le nom du fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                            .OnAction = "'NomFichier.xls'!NomProcédure"
    Si tu peux t'en inspirer...

    A+

  3. #3
    Membre du Club
    Homme Profil pro
    Supply Chain Manager
    Inscrit en
    Octobre 2002
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Supply Chain Manager

    Informations forums :
    Inscription : Octobre 2002
    Messages : 33
    Points : 40
    Points
    40
    Par défaut
    Je le pensais aussi, mais ça ne marche pas non plus... Par contre, le code suivant fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ActiveSheet.Shapes.AddShape(msoShapeStripedRightArrow, x, y, 50#, 15#).Select
       With Selection
       .Name = NomShape
       .ShapeRange.Fill.Solid
       .ShapeRange.Fill.ForeColor.SchemeColor = 57
       .ShapeRange.Line.ForeColor.SchemeColor = 64
       .OnAction = "OuvrirMRP"
       End With
    Autrement dit, dès que j'enlève le paramètre ça marche.

  4. #4
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    OnAction n'est pas censé retourné de résultat il ne faut donc pas utiliser de parenthèses
    par contre le(s) paramètre(s) doit se trouver entre guillements.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .OnAction = "'OuvrirMRP """  & Trim(Str(Ligne)) """'"
    qui fournira la chaine suivante
    (ici ligne=0)


    Idem pour OnTime

    NB : Suivant les version d'Excel, il peut être utile d'ajouter un en début de syntaxe

  5. #5
    Membre du Club
    Homme Profil pro
    Supply Chain Manager
    Inscrit en
    Octobre 2002
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Supply Chain Manager

    Informations forums :
    Inscription : Octobre 2002
    Messages : 33
    Points : 40
    Points
    40
    Par défaut
    Parfait! En ajustant les " on y arrive! Merci!
    Pour info, comme légèrement tendance à m'emmêler les guillemets, j'ai utilisé le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    StrLigne = Trim(Str(Ligne))
    StrTemp = "'" + "OuvrirMRP " + """" + StrLigne + """" + "'"
    Puis plus loin:

    Merci!

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

Discussions similaires

  1. Démarrer fichier excel vba avec paramètre
    Par ooyeah dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/06/2007, 12h04
  2. [VBA-E]Application.run avec paramètres
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/03/2007, 16h48
  3. Réponses: 5
    Dernier message: 06/01/2007, 04h48
  4. Réponses: 1
    Dernier message: 03/12/2006, 16h13
  5. [EXCEL] [VBA] Requete avec paramètres
    Par alaingui dans le forum Access
    Réponses: 3
    Dernier message: 17/03/2006, 08h31

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