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 :

Forme d'un objet de type "Shape"


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2019
    Messages : 4
    Par défaut Forme d'un objet de type "Shape"
    Bonjour à tous,

    Malgré quelques recherches sur internet, je n'ai pas réussi à trouver une réponse à ma question. J'aimerai savoir si il est possible, après avoir créé un objet tiré d'une image de type PNG, associé à un objet de type Shape sous VBA, de :
    - Soit lui associer une macro, mais que la "Hitbox" de l'objet associé à la macro ne soit pas rectangulaire.
    - Ou de récupérer le clique de l'user sur l'objet et de modifier la forme de l'objet en amont.

    Le but est ici est de créer une image avec plusieurs objets où l'on peut cliquer dessus. Si aucune de ces solutions n'est réalisables, est-il possible selon vous de jouer sur l'arrière plan en essayant d’empêcher que la macro associé à l'objet soit rectangulaire ?

    Merci d'avance pour votre réponse.
    Cdlt.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ancien Etudiant
    Inscrit en
    Janvier 2019
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Ancien Etudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 152
    Par défaut
    Bonjour,

    Pas sûr d'avoir tout compris!

    Mais, après avoir insérer une image, on peut ajouter sur cette image des formes automatiques (variées) sans remplissage.

    Après avoir tout sélectionné, puis groupé, on obtient un "shape" qui prend un nom comme : Groupe 16

    clic droit sur ce groupe et Affecter une macro. Le nom proposée est de la forme:Groupe16_QuandClic()
    Valider.

    Dans cette macro coller le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Application.Caller
    Un message affiche alors le nom de la forme sur laquelle on a cliqué.
    On peut donc récupérer le nom de la forme cliquée et donc , par un Select Case par exemple, créer une action spécifique pour chaque forme de l'image globale.

    A+

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    oui
    manuellement c
    click droit sur le groupe ou un des shapes (c'est le groupe qui va être sélectionné) et affecter une macro

    par vba
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lenomdetongroupe.onction="nomdetamacro"
    et pour peu que tu ne veuille pas te servir de App. Caller

    tu argumente l'appel

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Sub test1()
    'exemple avec 1 argument ecrit en dur dans l'apel
     lenomdetongroupe.OnAction = "'mamacro " & """toto""" & "'"
    End Sub
    Sub test1BIS()
    'la meme que la TEST1 mais avec une varaible dans l'apel
     machin = "toto"
     lenomdetongroupe..OnAction = "'mamacro " & Chr(34) & machin & Chr(34) & "'"
    End Sub
     
    Sub test2()
    'exemple avec plusieurs  arguments ecrit en dur dans l'apel
     Sheets(1).Shapes(1).OnAction = "'mamacro2 " & Chr(34) & "toto "","" titi "",""  riffifi ""'"
    End Sub
    Sub test2BIS()
    'LA MEME QUE LA test2 MAIS AVEC DE VARIABLES INSTRUITES AVANT EN ARGUMENT
     machin1 = "toto"
     machin2 = "titi"
     machin3 = "riffifi"
      lenomdetongroupe..OnAction = "'mamacro2 " & Chr(34) & machin1 & """,""" & machin2 & """,""" & machin3 & "'"
    End Sub
     
     
    Sub mamacro(argument)
    MsgBox argument
    End Sub
    Sub mamacro2(argument1, argument2, argument3)
    MsgBox argument1 & vbCrLf & argument2 & vbCrLf & argument3
    End Sub
    j'ai tout dis
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2019
    Messages : 4
    Par défaut
    Merci beaucoup pour votre aide et votre rapidité à répondre. Grâce à vous, j'ai pu trouver la réponse à mon problème !

    Bonne soirée à vous deux !

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 20/10/2008, 17h25
  2. Réponses: 2
    Dernier message: 28/06/2008, 10h08
  3. Problème de sérialisation d'un objet de type form
    Par anas.eh dans le forum Windows Forms
    Réponses: 5
    Dernier message: 15/08/2007, 19h07
  4. [VBA] Passage objet Form : err 13 incompatibilité de type.
    Par Caroline1 dans le forum Contribuez
    Réponses: 6
    Dernier message: 12/04/2006, 14h39

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