Dimension d'une photo

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 !

Xtian_Québec

XLDnaute Occasionnel
Salut le Forum, j'ai un petit pb avec l'ajout de photos dans un fichier Excel. J'ai créé un petit fichier demo pour comprendre ce qui se passe mais je ne saisie pas le pb.

Mon fichier a 23 ko, il ne contient qu'un bouton et une ImageBox. Lorsque j'exécute le code suivant:
--------------------------------------
Public Sub LoadImage1_Click()

ImgBox1.Picture = LoadPicture("")
Dim sFileName As String
sFileName = Application.GetOpenFilename("Fichiers image,*.bmp; *.jpg; *.jpeg; *.jpe; *.jfif; *.gif; *.tif; *.tiff; *.png; *.ico, Tous les fichiers, *.*", 1, "Sélectioner une image", , False)
If Len(sFileName) > 5 Then
ImgBox1.Picture = LoadPicture(sFileName)
AjustSize ImgBox1
End If
End Sub
-------------------------------------------------------
Public Sub AjustSize(ByVal imgBox As Image)
If ImgBox1.Picture.Height > 170 Then
ImgBox1.Width = (ImgBox1.Picture.Width * 170) / ImgBox1.Picture.Height
ImgBox1.Height = 170
Else
ImgBox1.Width = ImgBox1.Picture.Width
ImgBox1.Height = ImgBox1.Picture.Height
End If
End Sub
----------------------------------------------------------

et que j'insère une photo de 272 ko, mon fichier grossit considérablement et passe à 8,031 ko. La photo fait environ 2 x 4 pouces dans mon fichier. Je ne comprend vraiement pas ce qui se passe pour que mon fichier prenne autant de volume...

J'ai fait des recherches sur le forum mais je ne trouve rien pour m'aider. Quelqu'un a une idée brillante à ce sujet ?

J'ai joint mon fichier original (avant insertion d'une photo), vous pourrez insérer vos propres photos pour comprendre ce qui se passe.

Merci

Xtian_Québec
@+++
 

Pièces jointes

Re : Dimension d'une photo

bonjour Xtian

à mon avis cela vient de l'objet Image qui transforme le fichier au format bmp pour l'affichage
(tu peux le vérifier dans la fenetre propriétés de l'objet image)


par contre (sans rapport) je ne suis pas sur que tu puisses ouvrir certains type d'images spécifiées dans GetOpenFilename : tif , png ...


bonne journée
MichelXld
 
Re : Dimension d'une photo

Bonjour

Par curiosité j'ai regardé ton classeur et essayé de comprendre ton code.
Du coup je suis tombé sur ce support MS
XL2000: Using the LoadPicture Function with an Image Control
(existe en français mais la traduction est difficile à suivre)

où il est fait allusion à l'intérêt de ne pas stocker le fichier image dans le classeur pour éviter de l'alourdir : c'est l'éternel problème des images stockées dans les documents MS. Même dans Access on a tout intérêt à ne stocker que les chemins d'accès.

Michel a raison : bizzarement Excel ouvre parfaitement un fichier tif mais pas en loadpicture.
 
Re : Dimension d'une photo

Merci MichelXld et Chris pour vos conseils. J'ai effectivement vérifié les propriétés de l'image et c'est effectivement en format bmp...Je crois que je devrai vivre avec mes "gros" fichiers. En autant que la vitesse d'ouverture n'est pas trop hypothéquée, faudra s'y faire...J'ai développer plusieurs fichiers de plan de chargement de train (wagon) avec caractéristiques, détails, mesure de sécurité et comme une image vaut mille mots, je dois joindre de 1 à 4 photos à chacun des plans...Je vais faire les tests de "volume" et voir si je devrai restreindre le nombre de photos à joindre au plan...

Désolé de ne pas avoir fait le suivi sur ce fil rapidement, j'ai eu une journée de fou aujourd'hui...Il est 20h30 ici et je commence à souffler un peu...en plus, vive le décallage horaire...J'aimerais bien être sur le même fuseau horaire que vous mais j'aime trop mon petit coin de pays...😎

Merci encore à vous deux

Xtian_Québec
@+++
 
Re : Dimension d'une photo

Salut le Forum

Xtian dois-tu obligatoirement garder la photo dans le fichier

Sinon dans ThisWorkbook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Set Sheets("Feuil1").ImgBox1.Picture = Nothing
End Sub

et pour le zoom pourquoi pas déjà ton controle avec la propriété

PictureSizeMode = fmPictureSideModeZoom

Mytå

Le décalage horaire faut s'y faire Xtian 🙂
 
Dernière modification par un modérateur:
Re : Dimension d'une photo

Mytå, j'aimerais conserver les photos avec les fichiers mais si je pouvais conserver les photos ailleurs lorsque je ferme le fichier avec Private Sub Workbook_BeforeClose(Cancel As Boolean) et les récupérer à l'ouverture avec Workbook_Open, ce serait bien mais je ne sais vraiment pas où faire la sauvegarde...

Si je conserve les photos (4 par plan x 36 plans), un fichier Excel risquerait d'être très volumineux et la vitesse d'ouverture de ce fichier serait amplifié dans mon code...je ne crois pas que c'est une bonne idée...

Par contre, si les photos sont conservées dans un répertoire en format jpg et que je puisse les identifier à la sortie du plan (leur donné avec le code un nom qui fait référence au plan) et utiliser ce ou ces même noms pour les charger au plan à l'ouverture de ce dernier, ce serait bien...

As-tu une idée comment je pourrais procéder ?

Merci de ton aide (sans décallage horaire !hi hi hi !!! 🙂

PS: En passant, j'ai un client à Baie-Comeau mais je suis certain que ce n'a rien à voir avec la côte nord...Beau coin de pays également !!!

Xtian_Québec
 
Re : Dimension d'une photo

Bonjour

Si c'est l'utilisateur qui choisit le fihier au départ il faudrait ajouter un bout de code pour
  • mémoriser le chemin/nom du fichier dans une variable
  • copier le fichier dans ton dossier image
  • stocker dans une feuille le nom ImgBox et le nom du fichier associé.
plus un autre code à l'ouverture (Workook_open) avec une boucle pour
  • réassocier à chaque ImgBox l'image du fichier avec un LoadPicture
Sinon je vais regarder : pour Access sur le site self_access j'avais trouvé un code qui permettait de stocker le chemin dans la table et l'affichage était automatique grâce à un petit code. Peut-être est-ce applicable à Excel.

Dans quel coin du Québec es-tu ? J'y suis allée il y a très longtemps et cela donnait envie d'avoir "ma cabane au Canada"...

Bon réveil car là tu dois encore dormir !
 
Re : Dimension d'une photo

Merci Chris

"Ma cabane au Canada" se trouve dans les Cantons de l'est, un coin de pays rempli de montagnes et de lacs avec des panoramas à en couper le souffle...

J'aime ton idée du "chemin" mais je ne suis pas certains que les utilisateurs conserveront "obligatoirement" les photos dans le répertoire d'origine...S'ils les déplacent, le code ne fonctionnera plus...

J'ai déjà entendu parlé d'un stockage avec MsAccess...créé une mini base de données pour stocker les photos, conserver cette bd au même endroit que les plans serait très bien.

Je lance l'appel au forum, y a-t-il quelqu'un qui sait quelle code il faut utiliser pour solutionner mon pb ?

Merci

Xtian_Québec
@+++
 
Re : Dimension d'une photo

bonjour à vous 2

j'espere que ces exemples pourront t'aider

Exporter des images dans une base Access puis les réimporter dans un userForm Excel :
exemple qui utilise l'objet Stream (uniquement disponible à partir de la version ADO 2.5)
Lien supprimé

pour les versions ADO antérieures:

Lien supprimé


et une autre possiblité (qui prend aussi de la place) mais c'est juste pour le Fun

https://www.excel-downloads.com/threads/des-images-gif-dans-le-classeur.42619/



bon apres midi
MichelXld
 
Dernière édition:
Re : Dimension d'une photo

Re
J'ai mis le code correspondant à ce que je décrivais dans le fichier joint :
  • je ne sais pas comment les utilisateurs vont alimenter chaque image : j'ai mis 2 boutons et 2 zones images.
  • quand on charge une image
    • le fichier est copié dans un dossier spécial (c:\temp dans mon code) sauf s'il y est déjà
    • le numéro de la zone image et le chemin/nom du fichier sont inscrits dans la feuil2
  • quand on ferme le fichier : les images sont effacées des zones images et le classeur est sauvegardé
  • quand on l'ouvre, à partir des données de feuil2, les images sont rechargées dans les zones. Si le fichier n'est pas trouvé la zone reste vide.
Vois si à partir de là tu peux arriver à ton objectif.

La base de données Access à la même inconvénient : elle grossit en fonction du nombre d'images.
Son avantage est que l'ensemble base + classeur est un poil plus facile à tranférer d'un PC à un autre qu'un classeur + dossier images. On pourrait améliorer un peu en imposant comme dossier images un sous-dossier de celui où est stocké le classeur.
 
Dernière édition:
Re : Dimension d'une photo

Merci beaucoup Chris et MichelXld,

Désolé de ne pas avoir fait le suivi de vos solutions plus vite, Ouff !!! quelle soirée...j'avais une activité très agréable à faire avec mon épouse...non non, ce n'est pas ce que vous pensez en ce moment...je suis allé au Cinéma...

Il est tard présentement ici mais je vais jetter un coup d'oeil à vos idées demain et je relancerai un fil avec un démo pour les prochaines recherches concernant ce pb.

Merci encore, c'est vraiment agréable de compter sur des gens comme vous, on ne se sent jamais pris avec nos problèmes...

Xtian_Québec
@+++
 
Re : Dimension d'une photo

Bonjour

No problem.
J'ai regardé la solution de MichelXld : l'image est stockée en binaire dans la base Access ce qui limite l'espace occupé.
Ton fil a donc enrichi ma collection du solutions Access.

Quand à toi tu as 2 solutions !

Je ne connais pas les cantons de l'EST : j'ai visité Quebec et la Gaspésie, Montréal et les Laurentides. Et de l'autre côté les Rocheuses.
Je retiens l'idée pour un prochain voyage !
 
Re : Dimension d'une photo (Photos dans EXCEL)

Salut le forum, MichelXld, Chris, Mytå

Voici la solution pour ajouter des photos dans un fichier Excel sans pour autant affecter le volume du fichier. Avec une combinaison de vos bons conseils, je partage avec le forum ce petit fichier exemple qui montre comment faire.

Merci à tous et espérant que des "forumeurs" trouveront réponses à ce problème dans le futur !!!

@+++
Xtian_Québec
 

Pièces jointes

Re : Dimension d'une photo

Bonjour

Il y a un ptit bug : dans la ligne filecopy il manque le \ derrière \Photos

Je vois que tu as tiré parti de ma proposition.

De mon côté j'ai tiré parti de la solution de MichelXld pour incorporer les images au format binaire dans une base Access et les afficher en clair dans les formulaires de la base.
Je ne sais pas encore si je vais l'utiliser pour un cas concret mais c'était un bon exercice.

Bon week end
 
- 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

  • Question Question
Microsoft 365 VBA insert photos
Réponses
12
Affichages
869
Retour