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

VBA Access Discussion :

Export Formulaire Graphique dans Excel


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 63
    Points : 52
    Points
    52
    Par défaut Export Formulaire Graphique dans Excel
    Bonjour à tous,

    Voici mon prob, j'ai créé un formulaire de type Graphique et je souhaiterais l'exporter sous Excel.
    Je cherche depuis hier soir sur le forum, sur le net, je ne trouve pas ce que je veux.
    Quelqu'un aurait-il une idée, sachant que je ne veux rien de bien compliqué, juste le graph copié dans Excel, même en format image.

    Merci d'avance.

  2. #2
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Bonsoir, voici un code qui pourrait t'être utile pour exporter ton graphe :
    Xchart2 est mon graphe et je l'exporte en graphe2.GIF (ou dans un autre format, comme tu veux) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     Dim grpApp As Graph.Chart
     
     
        Set grpApp = Me.xChart2.Object
        grpApp.Export Application.CurrentProject.Path & "\graphe2.gif", FilterName:="GIF"
        Set grpApp = Nothing
        Me.xChart2.Action = acOLEClose  'nécessaire sinon erreur OLE :: http://support.microsoft.com/kb/824276/fr
     
        ...
    Si ca peut aider
    "Always look at the bright side of life." Monty Python.

  3. #3
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 183
    Points : 1 362
    Points
    1 362
    Par défaut
    Et un copier-coller, ça le fait pas ?
    [Access] Les bases du débogage => ici

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 63
    Points : 52
    Points
    52
    Par défaut
    Merci pour ton aide MicNiv, je vais essayer d'adapter ça dans mon code.
    Je te tiens au courant.

    Pour réponde au opier coller, ça me va mais s'il y a une solution automatique pour un copier coller je suis prenneur...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 63
    Points : 52
    Points
    52
    Par défaut
    J'ai réussi à exporter le graph en créant un bouton dans LE formulaire, en desous du graph.

    Pourrais-je remplacer le "Me" par le nom du Formulaire à ouvrir, et cerise sur le gateau, exporter le graph dans un onglet Excel.

    Merci encore, vous m'etes d'une aide très précieuse.

  6. #6
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Bonsoir,
    pour t'aider à avancer, voici du code, que tu sauras personnaliser, et qui fait les etapes suivantes :

    1 On exporte le graphe dans le répertoire courant de l'application [rep application]
    'comme dans le code donné ci-dessus
    'je suis pas obligé de passer par cette étape mais c'est plus didactique

    2 On ouvre un classeur Excel à partir d'un classeur modèle auparavant préparé sous le répertoire [rep application]\xls\ et nommé modeleXLS.xls (ce peut être un fichier vide mais aussi ton classeur déjà commencé dans lequel tu dois déposer ton graphe)

    3 On insère ce fichier image dans la feuille Excel

    4 le fichier excel incorporant l'image est automatiquement sauvegardé en ... sous sous [rep application]\

    5 C'est fini

    donc colle ce code sous un bouton et adapte le au nom de ton graphe et autres variables

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    ' Ajouter la référence à Microsoft Excel ...
     
     ' Declarations Excel
        Dim objXL As Excel.Application, objSheet As Object  '
        Dim fichierModeleXL As String, nomSauvegarde As String
        Dim grpApp As Graph.Chart
     
     
        On Error GoTo Err_Click
     
        Set grpApp = Me.xChart2.Object
        grpApp.Export Application.CurrentProject.Path & "\graphe2.gif", FilterName:="GIF"
     
        Set grpApp = Nothing
     
        Me.xChart2.Action = acOLEClose  'nécessaire sinon erreur OLE :: http://support.microsoft.com/kb/824276/fr
        '                               'avec Enabled=OUI
     
      Me.Requery  'cette ligne si besoin ...
     
     
     
        ' *** EXCEL ***
    Ouvre_feuille_excel:        '(si l'appli Excel est déjà lancée)
     
        On Error GoTo err_init_excel
        Set objXL = GetObject(, "Excel.application")    ' référence vers appli Excel
        On Error GoTo err_quit_excel
     
        objXL.Visible = True
        'objXL.Workbooks.Add                        ' ouvre nouveau fichier .xls
        fichierModeleXL = Application.CurrentProject.Path & "\XLS\modeleXLS.xls"
        objXL.Workbooks.Open (fichierModeleXL)      ' ouvre fichier modele existant
     
        'si Excel en icône, on le ré-ouvre
        If objXL.WindowState = xlMinimized Then objXL.WindowState = xlNormal
     
        Set objSheet = objXL.ActiveSheet
        objSheet.Activate
     
        objXL.ActiveSheet.Cells(2, 3).Value = "CECI EST MON TITRE"
     
         objXL.ActiveSheet.Pictures.Insert(Application.CurrentProject.Path & "\graphe2.gif").Select
     
        'on déplace le graphe au bon endroit
        objXL.ActiveSheet.Pictures.ShapeRange.IncrementLeft 76.5
        objXL.ActiveSheet.Pictures.ShapeRange.IncrementTop 39.75
     
        ' ********* Fin écriture dans EXCEL **************
     
        'Sauvegarde du fichier
    '-----------------------
         'constitution du chemin/nom de fichier
        nomSauvegarde = Application.CurrentProject.Path & "\testXls" & "_édité_le_" & Format(Date, "dd\-mm\-yyyy") & ".xls"
        'on sauvegarde la feuille sous le nom contenu dans nomSauvegarde
       objXL.ActiveWorkbook.SaveAs Filename:=nomSauvegarde, _
                                    FileFormat:=17, password:="", WriteResPassword:="", _
                                    ReadOnlyRecommended:=False, CreateBackup:=False
     
     
        'Si on voulait quitter excel :
        'objXL.Application.Quit
     
        Set objSheet = Nothing
        Set objXL = Nothing
     
     
    Exit_Click:
        Exit Sub
     
    err_init_excel:
        On Error GoTo Err_Click
        Set objXL = CreateObject("Excel.application")    ' nouvelle instance Excel
        GoTo Ouvre_feuille_excel
     
    err_quit_excel:
        MsgBox " Impossible d'ouvrir le fichier " & fichierModeleXL
        objXL.Quit
        Set objXL = Nothing
        GoTo Err_Click
     
    Err_Click:
        MsgBox Err.Description, vbCritical, "Erreur n°" & Err.Number 
        Resume Exit_Click
    "Always look at the bright side of life." Monty Python.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 63
    Points : 52
    Points
    52
    Par défaut
    Bonjour, j'espère que vous avez passé un bon weekend,

    Merci beaucoup pour ton code MicNiv, je vais le tester et je te tiens au courant.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 63
    Points : 52
    Points
    52
    Par défaut
    Re,

    Le code fonctionne très bien, le seul hic, c'est que je ne sais toujours pas comment adapter ça dans une macro globale qui m'exportera plusieurs graph.
    Je m'explique, le finalité de mon code doit donner un fichier excel, avec tous les graphs dans différents onglets.

    Ici nous pouvons créer un bouton DANS UN FORMULAIRE, alors que je souhaiterai accéder au formuilaire depuis un autre FORMULAIRE ou un fichier Excel par exemple, enfin pouvoir ouvrir un Formulaire, exporter le graph en image, l'importer dans Excel, le tout avec plusieurs Graph dans plusieurs formulaires.

    Je ne sais pas si je suis clair, en fait c'est le Me.xChart2... qui me pose problème; je souhaiterai, à la place du Me, mettre le nom du Formulaire.

    Merci d'avance, je continue à faire des tests.

  9. #9
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    pas de pb.

    Tu remplaces Me. qui représente le formulaire courant par Forms("FormName").
    Note que ceci nécessite que Forms("FormName") soit déjà ouvert.

    "Always look at the bright side of life." Monty Python.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 63
    Points : 52
    Points
    52
    Par défaut
    Quand tu dis qu'il doit être déjà ouvert, cela veut dire de faire au préalable un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm  "NomFormulaire"
    En tout cas merci beaucoup de ton aide, j'avais presque mis le doigt dessus, enfin sur cette dernière partie!!!!, mais des erreurs apparaissaient tout le temps.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 63
    Points : 52
    Points
    52
    Par défaut
    ok nikel, ça fonctionne, je vais maintenant passer à la mise en place de cette automatisation, ça va pas être simple, mais avec tout l'aide que tu viens de m'apporter, je pense que ça va le faire.

    Merci encore à toi MicNiv.

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

Discussions similaires

  1. [XL-2003] Exporter résultats cases à cocher formulaire word dans excel
    Par macat dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 10/12/2009, 15h54
  2. appli VB qui créé des graphiques dans Excel
    Par scarpat dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 24/09/2006, 15h43
  3. Exportation de requete dans excel
    Par Yves2507 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 08/09/2006, 11h38
  4. exportation tableau acces dans excel
    Par gronul dans le forum Access
    Réponses: 3
    Dernier message: 12/06/2006, 12h49
  5. Exporter formulaire Access dans Excel
    Par teti_chenille dans le forum Access
    Réponses: 6
    Dernier message: 28/02/2006, 17h40

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