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 :

Copier une image depuis une feuille vers le disque dur


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur avant-vente
    Inscrit en
    Novembre 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur avant-vente
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2017
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Copier une image depuis une feuille vers le disque dur
    Bonsoir à tous,

    Je cherche une méthode pour copier une image d'un groupe de cellules directement sur le disque dur.
    Dans les "F.A.Q. Excel", rubrique "24. Les Images", je pensais avoir trouvé la solution avec le code qui est proposé sous la question "Comment exporter toutes les images d'une feuille sur le disque dur ?".

    Dans le principe, c'est exactement ce qu'il me faut.
    Le problème c'est que la macro marche très bien lorsque je fais du pas à pas avec F8, mais elle ne marche plus lorsque je la déroule en mode normal avec F5.
    En fait, l'action "Paste" du bloc de lignes :
    With Worksheets("Grille").ChartObjects.Add(0, 0, Pict.Width, Pict.Height).Chart
    .Paste
    .Export ThisWorkbook.Path & "\" & nom_fic & ".jpg", "JPG"
    End With

    ne fonctionne pas.

    Quelqu'un sait-il pourquoi ? Avez-vous une solution ?

    Je vous remercie.

    HyeJack

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, je viens de tester ce code de la FAQ et il fonctionne correctement sauf si bien sûr la feuille est vierge.
    Sinon tu as la possibilité de sauver en PDF ? Pour cela voir en bas de ce post #1 la partie intitulée Impression de certaines Feuilles d'un classeur via un tableau dans un seul Pdf résultant

  3. #3
    Nouveau membre du Club
    Avatar de waard
    Homme Profil pro
    comptable
    Inscrit en
    Novembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : comptable
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2014
    Messages : 9
    Points : 37
    Points
    37
    Par défaut
    Hello tout le Monde,

    Moi aussi on m'a remonté ce pb aujourd'hui et après recherche il semble que depuis quelques temps il y'ait eu un changement dans Excel 2016, dans la gestion de la méthode export du chart.
    Pour les archives internet franco, en suivant ce lien, vous avez la solution : https://stackoverflow.com/questions/47174220/exporting-data-and-charts-from-excel-worksheets-to-jpg"
    Solution d'Axel Richter le code marche si on ajoute le ChartObj.Activate avant le .Paste et le .Export

    Démo p/excel 2016, est-ce que ça marchera sur les versions d'excel antérieures ?... :
    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
    Sub ExtractionImagesFeuille()
        Dim Pict As Picture
        Dim Nb As Byte
        Dim ChartObj As ChartObject
     
        For Each Pict In ActiveSheet.Pictures
            If Pict.Name Like "FD" Then
            Pict.CopyPicture 'copie l'image
                Set ChartObj = ActiveSheet.ChartObjects.Add(0, 0, Pict.Width, Pict.Height)
                ChartObj.Activate
                ChartObj.Chart.Paste 'colle l'image dans un graphique temporaire
                ChartObj.Chart.Export "C:\Userspath\" & Pict.Name & ".jpg", "jpg" 'Sauvegarde au format image, dans le même répertoire que ce classeur.
            Nb = ActiveSheet.ChartObjects.Count
            ActiveSheet.ChartObjects(Nb).Delete 'Supprime le graphique
            End If
        Next Pict
     
    End Sub
    "One and yet a mass"
    COHENNY Tristan - Projet MYRMIDON

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    bonsoir
    a priori waard il ne devrait avoir aucunes incompatibilité avec les version antérieures de Excel

    juste une question
    étant donné que le graphique est sélectionne/activé n'y a t il pas les bordure dans l'image résultante
    a vérifier
    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

  5. #5
    Nouveau membre du Club
    Avatar de waard
    Homme Profil pro
    comptable
    Inscrit en
    Novembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : comptable
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2014
    Messages : 9
    Points : 37
    Points
    37
    Par défaut
    Bonsoir Patrick,

    Si ça marche avec les autres versions cool.

    Pour le 2e point, bon coup d’œil, concernant le pb de bordure, mon code de démo, est pour les exports d'objet image/forme d'excel, no soucis à ce niveau.
    Mais pour les plage cellules, il y'a bien une bordure qui apparait (du moins de l'algo que je connais), pour ça, perso j'utilise un rognage rapide de l'image de la plage, de quelques points sur les bordures en cause et ça part.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            Range("A1:C14").Select
            Selection.Copy
            ActiveSheet.Pictures.Paste.Select
            Selection.ShapeRange.PictureFormat.CropRight = 4 'rogner nombre de point x pour reprendre ancien format résolution
            Selection.ShapeRange.PictureFormat.CropBottom = 4 'rogner nombre de point y pour reprendre ancien format résolution écran
    "One and yet a mass"
    COHENNY Tristan - Projet MYRMIDON

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    ok je testerais avec 2007 le graph mais il me semble qu'avec le graph activé j'avais la bordure droite et bottom dans l'image
    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

Discussions similaires

  1. [Débutant] Récupérer une image depuis la vue vers le controlleur.
    Par lewolf dans le forum ASP.NET MVC
    Réponses: 8
    Dernier message: 16/08/2015, 08h24
  2. Réponses: 13
    Dernier message: 16/01/2015, 10h50
  3. [Débutant] Manipulation d'images : intégrer une image dans une image
    Par noscollections dans le forum VB.NET
    Réponses: 2
    Dernier message: 17/10/2014, 11h51
  4. [Windows Phone 7] Socket, transfert d'une image depuis windows phone vers mon PC et vice-versa
    Par juvenalvangu dans le forum Windows Phone
    Réponses: 1
    Dernier message: 13/10/2013, 14h14
  5. transferer une image de la feuille vers un userform
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/11/2007, 06h28

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