Afficher graphe dans fichier VBA

Bonjour le forum,
Je suis doublement nouveau (sur ce forum et dans le codage VBA).
J’ai conçu un fichier VBA (grâce a certains tutos) qui à pour but de simplifier les enregistrements opérationnels quotidiens, avec pour finalité de visualiser l’évolution des activités grâces a des KPI’S en graphes.

  1. Sur le formulaire d’accueil de mon fichier j’ai un bouton « PRODUCTION » (CommandButton3) qui me permet d’appeler le formulaire de performance que j’ai appelé FMPERF dont voici le code:
    Private Sub CommandButton3_Click()
    ’ Masquer le UserForm d’accueil
    FMACCUEIL.Hide
    FMPERF.Show
    End Sub

  2. Sur FMPERF j’ai un bouton « PERFORMANCE CONDITIONNEMENT » (CommandButton3) qui me permet d’appeler le formulaire sur lequel je dois visualiser les graphes dont voici le code:
    Private Sub CommandButton3_Click()
    On Error Resume Next ’ Ignorer les erreurs
    ’ Masquer le UserForm d’accueil
    FMPERF.Hide

    ’ Charger le formulaire FMGRAPH
    Load FMGRAPH

    ’ Afficher le formulaire FMGRAPH
    FMGRAPH.Show
    End Sub

  3. Sur le formulaire des graphes nommé FMGRAPH, j’ai le code suivant qui devait me permettre d’afficher les graphes:
    Option Explicit

Private Sub UserForm_Initialize()
’ Charge les images depuis la feuille « Graphe »
ChargerImages
End Sub

Private Sub ChargerImages()
Dim ws As Worksheet
Dim shp As Shape

' Référence à la feuille "Graphe"
Set ws = ThisWorkbook.Worksheets("Graphe")

' Parcours des formes (shapes) pour trouver les images
For Each shp In ws.Shapes
    If shp.Type = msoPicture Then
        Select Case shp.Name
            Case "I1"
                Image1.Picture = shp.Image
            Case "I2"
                Image2.Picture = shp.Image
            Case "I3"
                Image3.Picture = shp.Image
            Case "I4"
                Image4.Picture = shp.Image
            Case "I5"
                Image5.Picture = shp.Image
        End Select
    End If
Next shp

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
’ Vérifie si le changement de données affecte la feuille « Graphe »
If Not Intersect(Target, ThisWorkbook.Worksheets(« Graphe »).Range(« A1:Z100 »)) Is Nothing Then
’ Met à jour les images lorsque les données changent
ChargerImages
End If
End Sub

  1. Dans mon thisworkbook, j’ai le code suivant:
    Function hide_workbook_and_show_form()
    Application.Visible = False
    FMACCUEIL.Show
    End Function

Private Sub workbook_Open()
Call hide_workbook_and_show_form
End Sub

SITUATION:
Lorsque je lance mon fichier VBA (en masquant l’application Excel) et que je cherche a afficher les courbes, aucune courbes ne s’affiche.
J’ai besoin de votre expertise forum.

GEST PROD - Copie (2).xlsm (527,7 Ko)

bonjour,
pou le moment, l’application est (temporairement) visible pour plus facile manipuler le fichier. Remarque, une fonction sert à calculer quelque chose, donc « Function hide_workbook_and_show_form() » n’est pas vraiment une fonction plutôt une macro. Puis les shapes dans la feuille « graph » sont des charts au lieu de pictures et il faut les exporter comme par exemple « gif » pour tout de suite les importer dans le userform.
Peut-être, il y a une aute méthode, je n’utilise pas aussi souvent des userforms.

GEST PROD - Copie (2).xlsm (489,7 Ko)

Bonjour Cow18,
Merci d’avoir pris le temps de me lire et de me répondre.

  1. Je note vos remarques et je vais faire des recherches pour trouver un autre code concernant « Function hide_workbook_and_show_form() »
  2. Je souhaiterai savoir si c’est possible de pouvoir afficher les graphes en travaillant en application Excel masqué? Ainsi je pourrai poursuivre mes recherches.

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.