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 :

Insérer un graphique dans un userform


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Insérer un graphique dans un userform
    Bonjour,

    Je suis entrain de développer un petit logiciel à l'aide de VBA et excel, celui-ci possède plusieurs userform qui permettent de rentrer des données dans le tableur excel. Ces données vont ensuite générer un graphique sur excel.

    Mon objectif serai de faire apparaître avec un bouton ce graphique dans mon userform avec un code VBA.

    S'il vous plait aidez-moi, cela fait pas mal de temps de que divague sur internet pour trouver un code qui correspond mais rien ne fonctionne.

    Merci d'avance.

  2. #2
    Expert éminent
    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
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Voici une piste avec un graphique dans un UserForm mais attention, c'est une image et non un vrai graphique mais en changeant des valeurs dans la plage, le graphique paraît dynamique car l"image est chargée sur le formulaire juste après la modification :
    Test Graphique.xlsm

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup,

    ça marche plus ou moins,

    le graphique s'affiche bien

    mais il est placé au milieu de l'userform, comment faire pour que je puisse le déplacer ?

    et il est placé à l'arrière plan, donc derrière toutes mes textsbox combobox et frame.....

    Merci d'avance

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 433
    Points
    12 433
    Par défaut
    mais il est placé au milieu de l'userform, comment faire pour que je puisse le déplacer
    attribue donc son image à un contrôle image (que tu places où bon te semble)
    et il est placé à l'arrière plan, donc derrière toutes mes textsbox combobox et frame.....
    mets ce contrôle image dans un Frame et donne à ce frame le zorder 0

  5. #5
    Expert éminent
    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
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour, bonjour unparia,

    Comme dit, utilise un contrôle Image et modifie les lignes de code "Worksheet_Change()" et "Initialize()" en rajoutant le nom de ton contrôle Image après UserForm1 comme ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UserForm1.Image1.Picture = LoadPicture(ThisWorkbook.Path & "\graphique.gif")
    Pour qu'il soit toujours au premier plan, tu fais comme unparia t'as dit, dans un contrôle Frame et si tu n'as aucun Frame sur ta Form (importance majeure par rapport aux autres contrôles), tu sélectionnes l'image puis Ctrl+J

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Alors merci

    à vous deux mais je n'ai pas compris ce que vous avez dit, je ne pense pas être assez compétent pour ça

  7. #7
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 433
    Points
    12 433
    Par défaut
    Alors merci

    à vous deux mais je n'ai pas compris ce que vous avez dit, je ne pense pas être assez compétent pour ça
    aucune compétence exceptionnelle n'est pour cela nécessaire.
    Je suppose (je n'ouvre jamais un classeur tiers) que tu as mis quelque part une ligne de code ressemblant à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.picture = loadpicture(.......)
    Ce qui t'est proposé est ceci :
    en mode création
    - un frame F sur ton userform
    - dans ce frame F, un contrôle image I
    et au lieu de la ligne de code que tu avais -->> ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    I.picture = loadpicture(.......)
    F.zorder
    tu auras ainsi toujours ton Frame au 1er plan et contenant l'image I (celle de ton graphique).
    voilà tout.

  8. #8
    Expert éminent
    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
    Points : 6 871
    Points
    6 871
    Par défaut
    Comme le Frame a une propriété "Picture", tu peux l'utiliser comme conteneur et il sera au premier plan. Voici un exemple avec le fichier précédemment posté :
    Test Graphique avec Frame.xlsm

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Super merci ça marche nickel

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

Discussions similaires

  1. Insérer un graphique dans un panel
    Par masterist dans le forum Débuter
    Réponses: 4
    Dernier message: 12/02/2010, 17h22
  2. [Toutes versions] Insérer une image dans une userform
    Par DonBacardi dans le forum Excel
    Réponses: 1
    Dernier message: 21/11/2009, 10h09
  3. Réponses: 0
    Dernier message: 07/08/2009, 19h36
  4. Insérer des leds dans un Userform
    Par fredtes35 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/08/2007, 10h59
  5. Réponses: 3
    Dernier message: 14/11/2005, 15h06

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