XL 2021 Extraction images depuis commentaire de cellule vers dossier.

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jeff1494

XLDnaute Occasionnel
Bonjour à toutes et tous;

J'ai un fichier contenant plusieurs feuilles, dont une nommée "INVENDUS" qui contient une liste d'objets.
Une ligne par objet, et en colonne 2 j'ai la description de l'objet qui contient en commentaire une photo de l'objet.

Je voudrais par macro , pour chaque ligne pouvoir extraire la photo contenue en colonne 2, et la sauvegarder dans un dossier que je nomme "JPG_INV", avec comme nom la valeur de la cellule A de la ligne, et une extension ".jpg".

Pour ce faire j'ai récupéré une macro donnée par @patricktoulon sur un autre forum dans un message dont voici le lien (message #15).
Je l'ai placé dans un module nommé "Export_Images".

J'ai juste adapté le code pour correspondre à mes besoins, à priori rien qui ne puisse changer le fonctionnement de la macro.

Le résultat de l'exécution de cette macro, est que je crée bien les images dans le répertoire défini, mais juste la première images qui est affichée comme un carré blanc dans l'explorateur de Windows.

Donc si jamais @patricktoulon passait par là, je lui serais reconnaissant de bien vouloir m'aider à comprendre pourquoi la première image reste comme un carré blanc, alors que les suivantes sont correctement créées. Mais si une autre personne a une idée du pourquoi du comment je suis preneur.

A toutes fins utiles je vous joins un exemple du fichier que j'utilise.

D'avance je remercie tous ceux ou celles qui voudront bien perdre un peu de leur temps pour m'aider.
Bonne journée à toutes et tous.
 

Pièces jointes

Solution
Bonsoir @jeff1494

"Il manquait cela : .Activate"

Pour comprendre ici en Poste #38 : https://excel-downloads.com/threads/export-dimages-renommer-celles-ci.20034890/post-20674531

VB:
Option Explicit

Sub Export_Photos()
    Dim i As Long
    On Error Resume Next
    MkDir ThisWorkbook.Path & "\JPG_INV"
    Err.Clear
'    Sheets.Add After:=Sheets(Sheets.Count)
    Sheets.Add(After:=Sheets("INVENDUS")).Name = "Feuille_Transit"
    
    With Sheets("Feuille_Transit").ChartObjects.Add(0, 0, 100, 100).Chart
        .Parent.Name = "calque"
    End With
    For i = 2 To Sheets("INVENDUS").Cells(Rows.Count, 2).End(xlUp).Row
        If Sheets("INVENDUS").Cells(i, 2).Comment.Shape.Fill.Type = 6 Then
        save_comment_fichier_jpg...
par ce que le wmf passe en loadpicture pourquoi passer par la passerelle
Tu dois être d'origine bretonne Patrick pour être têtu comme tu l'es 😉
Je n'ai pas regardé la vidéo (34 minutes c'est trop long pour moi)

1 - Le LoadPicture ne fonctionne pas chez moi en Excel 2016 W11 sur un petit WMF standard (23 ko) et l'image que tu nous as mis dans ton classeur c'est un emf pas un wmf.
2 - L'insertion par Texture ne fonctionne pas non plus avec l'image WMF standard (trop grande) alors que l'insertion par image fonctionne

J'invite les autres participants à cette discussion à tester chez eux et nous dire ce qu'il se passe
 
Dernière édition:
maman etait bretonne oui 🤪 🤪🤪🤪
comment inserer en picture et non en texture avec 2013 je n'ai pas ce choix moi tu le vois dans les menu dans la video
c'est pas une question d'être têtu
OKi mais ça limite quand même de ne pas pouvoir charger en image.
N'importe comment il semble y avoir un comportement différent suivant les versions d'Excel. Il faudrait peut-être faire plusieurs versions ou du code conditionnel suivant la version, d'ailleurs est-ce possible ?
 
alors je l'ai fait par vba et effectiment ta couronne rentre
VB:
Sub test()
    ActiveCell.Comment.Shape.Fill.UserPicture "C:\Users\patricktoulon\Desktop\couronne.wmf"
End Sub
mais le visionage me renvoie toujours l'erreur avec loadpicture
demo1.gif


ensuite je refait la chose avec ma couronne remastered
VB:
Sub test()
    ActiveCell.Comment.Shape.Fill.UserPicture "C:\Users\patricktoulon\Desktop\couronne1 remastered.wmf"
End Sub
et le résultat est sans appel
demo1.gif


Alors dit moi mon garçon le quel de nous deux est le plus têtu 😉
 
je ne charge pas des emf mais des wmf il ont la structure wmf avec olecreatepicture
si je les sauve avec seulement l'api enhmetafile oui là c'est des emf

je vais essayer le couronneS pour voir
et on est d'accord le couronne tout court est pourrie
mais quand je le reconvertie avec ma fonction XlCopypicture elle devient valable

allez je reviens j'essaie la "S"
alors :
je met la couronneS.wmf dans le commentaire
VB:
Sub test()
    ActiveCell.Comment.Shape.Fill.UserPicture "C:\Users\patricktoulon\Desktop\couronneIS.wmf"
End Sub
on tente d'abords par le load picture
résultat sans appel
demo1.gif


allez je force l'utilisation de WIA maintenant
VB:
'If " wmf jpg " Like "* " & ListBox1.List(ListBox1.ListIndex, 3) & " *" Then
        'framevue.Image1.Picture = LoadPicture(wbk.Path & "\" & ListBox1.List(ListBox1.ListIndex, 2))
    'Else
        framevue.Image1.Picture = LoadPngPicture(wbk.Path & "\" & ListBox1.List(ListBox1.ListIndex, 2))
    'End If

là encore le résultat est sans appel


demo1.gif


d'ailleurs même la lecture dans windows du fichier plante


demo1.gif
 
mon but c'est de faire quelque chose qui fonctionne chez tout le monde et pas que chez jurassic pork tu comprends
donc si je te dit que tes wmf ne sont pas bons, ils ne sont pas bons
  1. oui ils rentrent dans les commentaires
  2. oui tu les vois
  3. mais leur extraction provoque une corruption de fichier
tandis qu'avec mes images converties avec ma fonction
  1. oui elle rentrent dans les commentaires
  2. oui on les vois
  3. et oui elle sont exploitables en sortie d'extraction
voila voila
allez je suis obligé de partir là je reviens plus tard
si tu veux ma fonction tu me le dit y a pas de soucis je te la donne
a+ je suis préssé
 
Depuis le début, Le wmf "Couronne" que j'ai chargé depuis https://www.armsandbadges.com/sample.htm est bien converti correctement par le code de @patricktoulon sur mon excel 2021/64bits .
Patrick m'a signalé que chez lui cela ne fonctionnait pas ....
Je ne sais plus de quelle couronne vous parlez ni de quelle version .... 🤔
1738834498071.png
Bien acceptée par Paint également
1738835013087.png
Si Patrick le met en ressource, un petit plus serait de mettre le mouse scrolling sur la listbox ..... 😁
 

Pièces jointes

Bon j'ai fait des essais avec un Excel 2010 sous windows 7 , ce que j'ai pu observé me fait dire que :
1 - Le format WMF a évolué voici les derniers changements
12/1/2017 14.0 None No changes to the meaning, language, or formatting of the technical content.
9/12/2018 15.0 Major Significantly changed the technical content.
4/7/2021 16.0 Major Significantly changed the technical content.
6/25/2021 17.0 Major Significantly changed the technical content.
mais il y en a plein d'autres depuis 2007
suivant l'O.S et la version d'Excel on ne peut pas lire certains WMF. Il y a certains wmf qui passent quelque soit la version d'Excel (voir pièce jointe).
Le wmf a été remplacé par l'emf et ce format semble tenir dans le temps (exemple le wmf transformé en emf par Patrick)
Moralité, ne pas utilisé de wmf dans les commentaires et d'ailleurs je ne vois pas trop l'intérêt de mettre une image vectorielle dans un commentaire. Sinon mettre un emf.
2 - Mon code où je n'utilise que le WIA fonctionne sous Excel 2010 Win7 avec tous les formats d'image à partir du moment où l'on utilise pas de vrai wmf.
3 - Sous Excel 2010 je peux bien mettre une image dans les commentaires :
FrmCommentExcel2010.png


j'arrive bien à charger la couronne (la InkScapeSimplifiée) en image d'un commentaire mais ce sont les LoadPicture qui ne passent pas.
En pièce jointe un wmf qui passe sur tous mes Excel et une série de emf qui sont des wmf transformés en emf et qui passent sur toutes mes versions d'Excel.
 

Pièces jointes

Dernière édition:
@fanch55 le sample récupérée sur le site
on le vois bien dans le commentaire
mais apres l'export
Sur mon système W11 et Excel 2021/64 bits, je n'ai besoin d'aucun subterfuge, je le vois directement après avoir ajouté le commentaire ...
J'utilise l'un des codes postés de notre prolifique Patrick , tel qu'il est dans le classeur joint ....
 

Pièces jointes

@jurassic pork les emf de ton zip de ce matin passent tranquille
on a donc un soucis avec les wmf de grande taille
car quand je les colles dans mon classeur xlpicture et que je les réduit et recapture en wmf et sauve comme tel ils passent

comme j'ai pas moi le dialog pour mettre l'image dans le commentaire et que je n'ai que la possibilité de les mettre en texture
j'ai presque envie de créer un complément avec bouton dans le ruban +dialog pour insérer des images dans les commentaires mais avec convertisseur intégré PnG comme ça plus de problème

@fanch55
décidément ce module scrollroulette y va partout
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
470
Retour