Insertion simple d'images à partir d'un repertoire

pierre93

XLDnaute Nouveau
Bonjour à tous,

Mille excuses si cette question a déjà été traitée, je n'en ai pas trouvé trace ou tout au moins je n'ai trouvé que des morceaux de réponses que je n'arrive pas forcément à rassembler.

Voici mon problème : J'ai un répertoire avec 350 photos, et j'aimerais les insérer dans un fichier excel de manière automatisée, quelle est la procédure à suivre ? Dans mon fichier excel le nom de l'image peut être dans deux colonnes : une image peut avoir la dénomination de la colonne B et une autre image peut avoir la dénomination de la colonne J. De plus les images ne sont pas au même dimensions et sont bien trop grande pour un fichier excel, l'idéal serait donc de pouvoir aussi redimensionner les photos par la même occasion (n'ayant pas encore photoshop sur mon PC je ne peux pas générer de script sur Photoshop pour homogénéiser mes images) et que les cellules de ma feuille Excel s'adaptent au format préalablement décidé.

Le but de la manip est bien entendu de m'éviter d'insérer les 350 photos à la main et d'avoir un rendu lisible. Je vous mets un exemple en pièce jointe et vous remercie d'avance. Comme je suis pas très malin faudra bien m'expliquer la procédure de A à Z :).
Merci d'avance et bonne journée.
 

Pièces jointes

  • pierre93 080909.zip
    29.5 KB · Affichages: 56

Efgé

XLDnaute Barbatruc
Re : Insertion simple d'images à partir d'un repertoire

Bonjour,
L'ajout de 350 photos dans un fichiers Excel va énormément alourdir celui-ci.
Peut être pourriez vous mettre ces photos comme image de fond dans des commentaires.
JB avait proposé ce code:
Sub PhotoCommentaire()
ChDir ActiveWorkbook.Path
Range("A2").Select
Do While ActiveCell <> ""
ActiveCell.ClearComments
ActiveCell.AddComment
ActiveCell.Comment.Text Text:=ActiveCell.Value
ActiveCell.Comment.Shape.Fill.UserPicture ActiveCell.Value & ".jpg"
ActiveCell.Comment.Shape.Height = 50
ActiveCell.Comment.Shape.Width = 50
ActiveCell.Comment.Shape.ScaleHeight 1.2, msoFalse, msoScaleFromTopLeft
ActiveCell.Comment.Shape.ScaleWidth 1, msoFalse, msoScaleFromTopLeft
ActiveCell.Offset(1, 0).Select
Loop
End Sub

Pour que celuici fontionne il faut que le nom de vos photos se trouve en colonne A et qu'elles soit toute en JPG et dans le même dossier que votre classeur.
Chaque cas se retrouvera doté d'un commentaire avec une image de 50X50
En espérant que cette solution vous conviendras,
cordialement
 

pierre93

XLDnaute Nouveau
Re : Insertion simple d'images à partir d'un repertoire

Merci pour cette réponse très rapide, j'étais tombé sur le code de JB, mais qui me donnais une erreur à l'exécution de la macro, et malheureusement le code donné ci-dessus me donne la même erreur : Erreur d'exécution ! 2147024809 (80070057) le fichier spécifié est introuvable", la ligne soulignée dans VB est ActiveCell.Comment.Shape.Fill.UserPicture ActiveCell.Value & ".jpg". Or mes images sont bien en jpg et dans le même répertoire que mon classeur Excel. Peut être est-ce très bête mais je ne comprends pas d'où vient l'erreur pour l'instant.

MAJ : N'ayant pas réalisé le fichier de base, je me suis aperçu qu'une ligne posait problème, je l'ai supprimé, la macro bloque néanmoins à la premiere ligne, le commentaire est bien créé, mais la bulle reste vierge (code VB bloquant : ActiveCell.Comment.Text Text:=ActiveCell.Value). De plus après vérif auprès du service voulant utilisé le fichier la visualisation en commentaire ne convient pas :( ah ces gens du marketing :). Mais merci néanmoins pour cette aide !

MAJ2 : En fait j'ai compris d'ou venait le problème en fait il y en a deux : le premier est que mes noms de photos sont parfois (mais pas tout le temps) uniquement composés de chiffres et que même en changeant le format de mes cellules en texte cela fait planter la macro et deux certaines références n'ont pas de photos et cette macro ne sait quoi faire quand elle ne trouve pas l'image correspondant à la référence.
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Insertion simple d'images à partir d'un repertoire

Bonjour Pierre

Vois si cela te convient

La photo peut etre indifferement en colonne B ou J
Une valeur (60) est eventuellement a adapter dans la macro
En cas d'ajout ou de modification des noms de photo la mise a jour integrale est faite

Edit: Salut Efgé
 

Pièces jointes

  • repertoire principal.zip
    38 KB · Affichages: 100

Efgé

XLDnaute Barbatruc
Re : Insertion simple d'images à partir d'un repertoire

Pierre93 est toujours aussis réactif...
Je venais juste de trouver le problème du code de JB:
Il faut remplacer la ligne :ChDir ActiveWorkbook.Path par
ChDir "U:\Dosiier\Fichier" (le chemin complet quoi...)
Cordialement
 

pierre93

XLDnaute Nouveau
Re : Insertion simple d'images à partir d'un repertoire

Eh bien chapeau et un grand merci à pierrejean et efgé, qui m'ont fait gagner énormément de temps. Allez je suis un peu gourmand... Imaginons que je dois aller chercher les photos dans plusieurs répertoires différents je dois juste rajouter les noms des répertoires sur cette ligne ?
rep_image = rep & "/" & "repertoire photo" & "/" & "rep 2" & "/" & "rep 3" etc...
 

pierre93

XLDnaute Nouveau
Re : Insertion simple d'images à partir d'un repertoire

Ok, merci pour cette info, alors que dois-je rajouter dans le code pour ajouter des répertoires de photos se trouvant au même niveau que le repertoire principal ?
Autre petite question (je commence à abuser :) ), lorsque je fais un filtre après l'exécution de la macro les photos des lignes non visibles restent, elles, visibles les une sous les autres existe-t-il un moyen pour qu'après un filtre l'on ne puisse voir que les photos sélectionnées par le filtre (désolé si je ne suis pas très clair :confused:).
De même lorsque je fais un tri il me semble que les photos ne se calent plus avec les lignes correspondantes, peut-on faire quelque chose ? Merci encore pour votre aide.
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Insertion simple d'images à partir d'un repertoire

Re

Avant de me lancer dans des modifs a 1ere vue consequentes il me faudrait quelques renseignements complementaires:
Le repertoire repertoire photo existe-t-il toujours ,en sus des repertoires du niveau du repertoire principal ?
Peut-on utiliser un Usf pour filtrer et trier . Si oui sur quels criteres portent les tris et filtres ?
Enfin pour me simplifier la tache quelques exemples supplementaires seraient bienvenus
 

pierre93

XLDnaute Nouveau
Re : Insertion simple d'images à partir d'un repertoire

Merci encore une fois pour votre réactivité et votre implication.
Pour le répertoire j'ai remis un autre zip en pj de façon à ce que l'architecture vous soit plus clair qu'avec mes mots.
Pour l'utilisation d'un USF on peut surement le faire mais je n'en ai jamais créé personnellement.
Voici mes critères de tris et les différents choix possibles pour chaque colonne triable :
Colonne A : PDR, NOUV, SPE, SUPP, Nouv été 09, (vide)
Colonne E : Déposable, (vide), Sur commande spé
Colonne H : CDT, (vide)
Merci d'avance.
De quels autres élèments avez-vous besoin ?
 

Pièces jointes

  • pierre93 080909 v2.zip
    46.3 KB · Affichages: 49

pierrejean

XLDnaute Barbatruc
Re : Insertion simple d'images à partir d'un repertoire

Re

Un debut
Les photos sont prises dans les repertoires cités (a adapter eventuellement dans la macro test)
Code:
repertoires = "rep2,rep3,rep4,repertoire photo"
Les Filtres sur les colonnes A E et H ne sont pas cumulatifs
Je n'ai pas prévu de tri ,ne sachant pas quels seraient les criteres de tri
A tester avec 350 photos (j'ai des craintes quant a la vitesse d'execution)
Me tenir au courant S.T.P
Note: il est imperatif que la colonne B soit servie entirement (même si le nom de la photo est en colonne J)
 

Pièces jointes

  • rep2.zip
    141.6 KB · Affichages: 74

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz