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

VB 6 et antérieur Discussion :

exporter des images depuis excel


Sujet :

VB 6 et antérieur

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 29
    Par défaut exporter des images depuis excel
    Bonjour à tous.
    Je vous expose mon problème : je travaille en VB6 et je dois développer une application qui exporte les images contenus dans des fichiers Excel.
    Je sais manipuler des données mais pas moyen d 'exporter les images sur le DD...
    J' ai réussi à effectuer cette tâche en VBA,mais le code n' est pas le même sous VB6.
    J' ai cherché sur le forum, avec mon ami Google ^^ et sur d' autres sites anglophones mais rien pour mon cas.
    Si un connaisseur passait par là, il serait le bienvenu

    D' avance merci, bonne soirée

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    voir http://vb.developpez.com/cours/?page=automation#office

    si tu t'en sort pas montre ton code VBA on t'aideras à l'adapter au VB6.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    En plus de la lecture que te fournie bbil (bonjour )

    Le principe est de :

    • Créer une instance d'Excel (voir le premier article du lien)
    • Ouvrir ton classeur
    • Utiliser le code VBA en déclarant correctement tes feuilles.


    Tu trouveras également dans la FAQ Access des méthodes pour piloter Excel. Tu peux faire la même chose en VB6.

    Starec

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 29
    Par défaut
    Merci pour vos réponses. En effet je déclare bien mes variables, j' ajoute la référence Excel 11 à mon projet mais plantage à chaque fois.
    Le code que j' utilise en VBA est le suivant (chopé sur la FAQ Excel) :

    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
     
    Sub ExtractionImagesFeuille()
        Dim Pict As Picture
        Dim Nb As Byte
     
        Application.ScreenUpdating = False
     
        For Each Pict In Worksheets("Feuil1").Pictures
            Pict.CopyPicture 'copie l'image
     
            With Worksheets("Feuil1").ChartObjects.Add(0, 0, Pict.Width, Pict.Height).Chart
                .Paste 'colle l'image dans un graphique temporaire
                'Sauvegarde au format image, dans le même répertoire que ce classeur.
                .Export ThisWorkbook.Path & "\" & Pict.Name & ".gif", "GIF"
            End With
     
            'Supprime le graphique
            Nb = Worksheets("Feuil1").ChartObjects.Count
            Worksheets("Feuil1").ChartObjects(Nb).Delete
        Next Pict
     
        Application.ScreenUpdating = True
    End Sub
    Le code est fonctionnel sous VBA Excel mais je ne sais pas si vous arriverez à faire quelque chose avec ça sous VB6..
    Merci

  5. #5
    Invité
    Invité(e)
    Par défaut
    Re

    Pourrais-tu mettre la déclaration de tes variables, et nous dire où ton code plante et quel est le message.

    Parceque ce n'est pas bon au niveau de la déclaration du classeur etc.. ç priori.

    Starec

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 29
    Par défaut
    Je vous met ça après le repas car du boulot m' attend ^^'
    De plus je ne programme pas sur ce pc, donc tout code que je transmet dois passer par une clé usb etc...

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 29
    Par défaut
    Voila le code :
    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
    Private Sub Form_Load()
    'Déclaration des variables
    Dim appExcel As Excel.Application 'Application Excel
    Dim wbExcel As Excel.Workbook 'Classeur Excel
    Dim wsExcel As Excel.Worksheet 'Feuille Excel
     
    'Ouverture de l'application
    Set appExcel = CreateObject("Excel.Application")
    'Ouverture d'un fichier Excel
    Set wbExcel = appExcel.Workbooks.Open("C:\testexport.xls")
    'wsExcel correspond à la première feuille du fichier
    Set wsExcel = wbExcel.Worksheets(1)
     
    Dim ch As Chart
    Set ch = Worksheets(1).ChartObjects("image1").Chart
     
    ch.Export "C:\testimage.jpg", "JPG"
    wbExcel.Close
    Set ch = Nothing
    Set wk = Nothing
     
    End Sub
    L' erreur vient de là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set ch = Worksheets(1).ChartObjects("image1").Chart
    Et l' erreur affichée est la suivante :
    Erreur d' exécution 1004
    Impossible de lire la propriété ChartObjects de la classe Worksheet
    Je tiens à dire que ce code n' est pas le même que mon code VBA mais que ce code a été récupéré sur un forum VB6, du fait que ma source VBA ne marche pas du tout.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Re

    Tu as déclaré une variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim wsExcel As Excel.Worksheet 'Feuille Excel
    a qui tu as donné une affectation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set wsExcel = wbExcel.Worksheets(1)
    C'est cette variable que tu dois utiliser à la placde dans le code.

    Et la même chose pour le classeur.

    Tu as copié intégralement le code VBA, il faut l'adapter.

    Starec

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 29
    Par défaut
    Malheureusement il me reproduit toujours le même message d' erreur, sur la même ligne. J' ai essayé de changé la variable que tu m' avais indiqué en mettant wsExcel,Worksheets(1),wbExcel.Worksheets,... mais rien ne fonctionne..
    Merci de passer ton temps sur mon sort Starec ^^

  10. #10
    Invité
    Invité(e)

  11. #11
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    tu est sur que ta FEUIL1 à l'index 1.?

    remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set wsExcel = wbExcel.Worksheets(1)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set wsExcel = wbExcel.Worksheets("Feuil1")
    (c'est bien Feuil1 que tu utilise dans ton VBA)


    j'ai pas vu la ligne .. où tu rendais l'application excel visible (c'est mieux pour le debug)

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 29
    Par défaut
    Voilà je viens de trouvé la solution à mon problème : il fallait utiliser des "Shape" à la place de "Chart"... Tout bête mais assez déconcertant... Merci à ceux qui se sont penchés sur le sujet.
    Ainsi donc le tag Résolu est de la fête ^^

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/05/2013, 12h56
  2. Exporter des styles depuis Excel
    Par Jean Claude Tergal dans le forum Excel
    Réponses: 1
    Dernier message: 04/06/2008, 15h37
  3. importer et exporter des données depuis excel
    Par thonyyzz dans le forum C++
    Réponses: 2
    Dernier message: 22/04/2008, 20h18
  4. [MySQL] Exporter des données vers Excel depuis php
    Par berti dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 05/03/2008, 14h26
  5. exporter des données vers EXCEL!
    Par JauB dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 25/11/2005, 15h13

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