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 :

Exporter les images placées dans les commentaires


Sujet :

Macros et VBA Excel

  1. #1
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut Exporter les images placées dans les commentaires
    Bonjour à tous,

    Je cherche à exporter des images qui ont étés placées dans des commentaires sur des cellules.

    J'ai déjà essayer pas mal de codes trouvé ci et la sur le net ainsi que dans les FAQ de Developpez mais rien ne fonctionne.

    Premier point déjà, lorsque je parcours les Shapes de ma Worksheet elle sont de type msoComment et non de type msoPicture.
    Pour vérifier qu'une image est bien présente dans la Shape commentaire je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim sheet As Worksheet
    Dim shp As Shape
     
    Set sheet = ActiveSheet
     
    For Each shp In sheet.Shapes
        If shp.Fill.Type = msoFillPicture Then
            Debug.Print "Il s'agit d'un commentaire avec image"
        End If
    Next
    Je sais donc que le commentaire est bien remplis avec un image, mais je ne trouve pas comment exporter le Fill de la Shape.

    Pour info j'ai déjà essaye d'exporter la Shape complète dans une image et le fichier générer n'est pas lisible.

    J'ai quelques 100 aines vois plus d'un millier d'image à exporter de ce fichier Excel
    Vu qu'il s'agit d'un Xlsx j'ai déjà récupérer les images en ouvrant le fichier en tant que Zip.
    Mais elle sont simplement nommé imagexxxx.jpeg mais j'ai besoin de nommer chaque image avec le nom de la cellule correspondante.

    Il s'agit d'une bibliothèque d'articles.

    Merci d'avance à vous

  2. #2
    Membre émérite
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Par défaut
    Salut,

    je n'ai pas le temps de tester, mais la propriété UserPicture
    devrait te permettre de récupérer le nom complet du fichier
    et ensuite le dupliquer avec un autre nom
    Cordialement,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Comment.Shape.Fill.UserPicture

  3. #3
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    J'ai déjà regardé du côté de cette méthode mais d'après MSDN elle ne sert qu'as remplir l'image mais pas à la récupérer
    https://msdn.microsoft.com/en-us/lib...ffice.11).aspx

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut heu
    Bonjour

    heu oui !!....
    sinon y a plus simple

    il y a la méthode export du chart dans la faq et même plusieurs fois sur ce forum tu trouvera des exemple
    le theme le plus souvent abordé est "sauvegarder une image d'un sheets dans un fichier
    parti de la on applique la même méthode avec le commentaire

    wagadougou!!!!!!!

    cet exemple copie le commentaire de la cellule (3,2)en image et l'exporte avec un graph temporaire au même endroit ou se trouve le classeur
    il te sera facile après de créer ta boucle sur toutes les cellules concernées
    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
    Sub test1()
    Application.ScreenUpdating = False
         With Cells(3, 2)
             If Not .Comment Is Nothing Then
                 .Comment.Visible = True
                 .Comment.Shape.CopyPicture
                  With Sheets(1).ChartObjects.Add(0, 0, .Comment.Shape.Width, .Comment.Shape.Height).Chart
                     .Paste
                     .Export ThisWorkbook.Path & "\" & cells(3,2).value & ".JPG", "JPG"
                  End With
                  sheets(1).ChartObjects(.Parent.ChartObjects.Count).Delete
     
                 .Comment.Visible = False
             End If
         End With
         Application.ScreenUpdating = True
    End Sub
    wagadougou!!!!!
    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
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    J'avais essayé cette technique mais l'image n'étais pas lisible.

    Je n'affichais pas le commentaire, il se peu que ce soit à cause de ça

    J'ai fais mas boucle mais j'ai un autre souci, la 1ere image est ok, mais toutes les autres sont blanches !

    Alors que si j’exécute le code en debug pas à pas les images sont ok....

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    donne moi un exemplaire en xlsx avec les cellules avec leur commentaires en enlevant tout ce qui peut etre confidentiel
    je vais regarder cela de plus prêt
    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

  7. #7
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    @patricktoulon : envoyé en MP

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    a ben oui voila !!!!!
    tu a ouvert ton fichier avec winrar au paravent et bien maintenant ton fichier est corrompu

    chez moi pour l'ouvrir excel a du supprimer tout les commentaires c'est baloh!!!! surtout que je t'avais demandé en xlsx(sans macro) pas en xlm hein!!!!

    je viens de faire un test chez moi avec un nouveau classeur et quelques cellules avec commentaires images et ca fonctionne très bien dans une boucle
    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
    Sub test3()
    For i = 4 To 7
    save_comment_fichier_jpg i
    Next
    End Sub
    Sub save_comment_fichier_jpg(x)
    Application.ScreenUpdating = False
         With Cells(x, 2)
             If Not .Comment Is Nothing Then
                 .Comment.Visible = True
                 .Comment.Shape.CopyPicture
                  With Sheets(1).ChartObjects.Add(0, 0, .Comment.Shape.Width, .Comment.Shape.Height).Chart
                     .Paste
                     .Export ThisWorkbook.Path & "\" & Cells(x, 2) & ".jpg", "JPG"
                  End With
                  .Parent.ChartObjects(.Parent.ChartObjects.Count).Delete
     
                 .Comment.Visible = False
             End If
         End With
         Application.ScreenUpdating = True
    End Sub
    demo en image
    Nom : demoingto64 in-out.gif
Affichages : 926
Taille : 469,1 Ko
    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

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    oserai je ajouter qu'un fichier excel de plus de 31 mega va certainement t'apporter que des soucis

    j'dis ca moi hein!......
    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

  10. #10
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    oserai je ajouter qu'un fichier excel de plus de 31 mega va certainement t'apporter que des soucis

    j'dis ca moi hein!......
    C'est mon fournisseur qui la ainsi...

    Je veux juste en extraire les images et après poubelle

    J'ai toujours le fichier original, je vais le reprendre et lancer la macro dessus.

    PS : Par curiosité, comment sais tu qu'il à été ouvert avec Winrar

  11. #11
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    heu comment
    et bien d'une part tu l'a dis au départ quand tu a dis que tu avais déjà extrait les image mais que les noms c'est img 0 etc....
    il n'y a qu'une seule façon d'arriver a ce résultat c'est winrar et il y a un autre moyen de savoir mais c'est compliqué en regardant un certains fichier dans le .rar obtenu


    envoie moi la feuille en XLSX JE VAIS VERIFIER


    après tu que tu le fait une fois puis poubelle
    est ce que cela devra se renouveler périodiquement ???
    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

  12. #12
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    lol XLSX pas de soucis, par contre la feuille d'origine est protéger (je l'ai déprotéger en editant le XML et en virant la balise sheetprotection).
    Le fichier que je t'envoi (en MP toujours) est celui d'origine sans modifs de ma part.

    Non je n'ai besoin de le faire qu'une fois, ou alors dans 1 an quand il y aura de nouveaux articles mais d'ici la.....

    En fait pour extraire les images et modifier le XML, je renomme simplement en ZIP et j'ouvre avec l'explorateur Windows, pas besoin d'arme lourde comme Winrar

    Upload en cours mais à 1M ça prends quelques minutes lol

    PS : Sans vouloir abuser Si tu arrive à virer complètement le tour et l'ombre qui est généré par la shape et le graph je suis prenneur

  13. #13
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    afin que je puisse t'aider pourrais tu envoyer pour la dernière fois un fichier utilisable xlsx et sans protection afin que je galère pas a ouvrir le fichier ou même en zip

    sinon je laisse tomber
    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

  14. #14
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Ok renvoyé en MP, fichier propre XLSX

  15. #15
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    Bon comme il y avais toujours la protection dans le dernier envoie j'ai pris un autre chemin
    voila

    maintenant tu prend ton xlx ou xlm
    tu lui met un module
    et tu colle ca dans le module
    et lance la sub "c_est_parti"
    c'est un peu long mais ca fonctionne
    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
    Sub c_est_parti()
        On Error Resume Next
        MkDir ThisWorkbook.Path & "\imgrecup"
        Err.Clear
        Sheets.Add After:=Sheets(Sheets.Count)
        With Sheets(2).ChartObjects.Add(0, 0, 100, 100).Chart
            .Parent.Name = "calque"
        End With
        For i = 6 To Sheets(1).Cells(Rows.Count, 2).End(xlUp).Row
            If Sheets(1).Cells(i, 2).Comment.Shape.Fill.Type = 6 Then
            save_comment_fichier_jpg i
        End If
        Next
    Sheets(2).ChartObjects(Sheets(2).ChartObjects.Count).Delete
    End Sub
    Sub save_comment_fichier_jpg(x)
        Application.ScreenUpdating = False
        With Sheets(1).Cells(x, 2)
            If Not .Comment Is Nothing Then
                .Comment.Visible = True
                .Comment.Shape.CopyPicture
                With Sheets(2).ChartObjects("calque")
                .Height = Sheets(1).Cells(x, 2).Comment.Shape.Height
                .Width = Sheets(1).Cells(x, 2).Comment.Shape.Width
                    .Chart.Paste
                    .Chart.Export ThisWorkbook.Path & "\imgrecup\" & Sheets(1).Cells(x, 2) & ".jpg", "JPG"
                End With
     
                .Comment.Visible = False
            End If
        End With
        Application.ScreenUpdating = True
    End Sub
    demo debut des 1eres copie en image
    Nom : demoingto64 in-out.gif
Affichages : 968
Taille : 1 010,0 Ko
    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

  16. #16
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Super merci !!!

    Pour le dernier XLSX je ne comprends pas, il n'est pas protéger

    Peux tu faire un dernier test sur les lignes 1596 et 1597, je ne comprends pas pourquoi les images sont tronquées en bas, il manque un bout.

    Quel outils utilise tu pour faire des live screen capture en GIF ?

  17. #17
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    bonjour por tes deux imaghes tronquées je vaos regarder
    pour les captureS c'est LICECAP C EST UN FREEWARE°
    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

  18. #18
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Ok merci

    Merci également pour LiceCAP, j'ai trouvé également un outil similaire qui s'appel ScreenToGif, freeware également qui rajoute une couche d'édition après capture.
    Tu peux ajouter des shapes, de la transparence cinématographique...

  19. #19
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    oui je connaissais mais il est lourd et pour faire simplement des captures pour démo c'est mieux lice cap
    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

  20. #20
    Invité de passage
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juillet 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Juillet 2021
    Messages : 1
    Par défaut Images blanches
    Bonjour,

    J'ai un petit surement tout petit problème ou vous aurez surement la réponse je cherche mais je ne trouve pas.
    j' ai copié collé le code et chez moi l'extraction ce fait bien mais les images sont blanches, quelqu un peu me dire pouquoi ?
    je suis sous office 365

    d'avance merci

Discussions similaires

  1. LS et les images collées dans les mails
    Par fosfore dans le forum Lotus Notes
    Réponses: 3
    Dernier message: 21/01/2016, 10h40
  2. Export en .doc, les images sont dans un dossier
    Par faloulau dans le forum BIRT
    Réponses: 1
    Dernier message: 08/04/2015, 10h23
  3. Filtres dans les requêtes ou dans les rapports
    Par aureliend8800 dans le forum Webi
    Réponses: 3
    Dernier message: 14/06/2013, 22h12
  4. Réponses: 20
    Dernier message: 22/07/2008, 02h28
  5. [C#] Comment liés les clases placé dans .cs entre elle
    Par Etienne maheu dans le forum ASP.NET
    Réponses: 13
    Dernier message: 15/04/2004, 13h05

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