XL 2016 Export d'images + renommer celles-ci !

fougeron

XLDnaute Nouveau
Bonjour à tous,

Je suis novice en Excel et j'essaie de trouver mon bonheur pour réussir à trouver une solution à mon problème. J'ai un fichier avec en colonne A des noms et en colonne B des images (photos) qui correspondent aux noms de la colonne A. J'essaie de faire un export des images qui seraient nommées par le nom qui correspond à chaque image en colonne A.

J'ai trouvé des macros sur ce forum qui arrivent à me faire un export et à renommer mais chaque images est vierge (blanche) ! Donc, ça ne fonctionne pas. En cherchant sur internet j'ai trouvé cette macro !

Sub ExtractionImagesFeuille()
Dim Pict As Picture
Dim Nb As Byte
Dim ChartObj As ChartObject

For Each Pict In ActiveSheet.Pictures
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:\Users\m.fougeron\downloads\" & 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
Next Pict

End Sub

Elle fonctionne parfaitement ! Elle me fait un export des photos. Par contre j'ai de modifier ça pour que cette Macro me renomme les photos avec les noms de la colonne A mais je n'y arrive pas... Je commence à désespérer !

De plus, cette macro exporte les photos par rapport à leurs tailles dans le fichier excel ! est-il possible d'avoir un export à la taille réelle de l'image avant l'intégration dans excel ?

Je vous joins un exemple en pièce jointe ! La macro est déjà intégrée dedans.

Si à tout hasard l'un de vous peut m'expliquer comment faire, ce serait top.

Merci à vous d'avoir pris le temps de me lire.
 

Pièces jointes

  • Fichier_TEST_MACRO.xlsm
    262 KB · Affichages: 15

patricktoulon

XLDnaute Barbatruc
pour info
une methode pour connaitre les dim d'une image
VB:
Sub testx()
    dimensions = dimention_image("H:\fond d'ecran\paysages\paysage3.jpg")
Debug.Print Join(dimensions, "X")
End Sub
Function dimention_image(chemin)
    Dim Img As Object
    With CreateObject("WIA.ImageFile"): .LoadFile chemin: dimention_image = Array(.Width, .Height): End With
End Function
 

Staple1600

XLDnaute Barbatruc
Re

On ne peut pas obliger nos petits camarades de jeu à se rappeler qu'à la base Excel est un tableur.
Et qu'il existe moult logiciels pour gérer/traiter les images.

Personnellement, je n'ai jamais eu l'occasion de faire défiler 1938 images et de lire leur noms dans des cellules Excel, dans le cadre d'un boulot. ;)
Ca doit prendre un sacré bout de temps. ;)
 

Staple1600

XLDnaute Barbatruc
Bonsoir lolostaps

[Pour infos]
L'usage c'est de créer sa propre discussion pour y poser sa question
C'est que tu as fait ;)
Et si les réponses tardent à venir, il faut faire ce qu'on appelle "un up"
(C'est à dire, se répondre à soi même dans sa discussion pour que celle-ci se ré-affiche en haut de la liste)
[/Pour infos]

NB: Poster sa question dans le fil d'un autre rend la lecture du fil moins fluide
(On sait plus qui a posé la question initiale et on ne sait plus à qui on réponds)
 

Discussions similaires

Statistiques des forums

Discussions
315 098
Messages
2 116 189
Membres
112 679
dernier inscrit
Yupanki