Macro de mise à jour Photo sous Excel

Résolu
JPA 380 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
JPA 380 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voici le contexte de ma recherche, j'ai trouvé dans le forum plusieurs partie de mon besoin mais je n'arrive pas a les assembler.

Le Contexte
Un fichier excel 2010 dont la première colonne comporte des références numérique unique (nombre de 4 chiffres)
Un dossier sur le disque D appelé "Photo" contenant autant de fichier que de références numérique (le nom du fichier est le nombre référence )

Le Besoin
Est il possible de créer une routine (macro excel) qui lirait chaque cellule de la première colonne afin de coller dans la cellule immédiatement à droite la photo. (Puis passerait a la suivante de la première colonne ainsi de suite jusqu'à rencontrer une cellule vide)
La routine inclurait une mise a la dimension souhaitée de la cellule et de la photo, et "attacher" l'image à la cellule.
Enfin il faut prévoir de lancer cette routine sur demande utilisateur (Bouton Mise à Jour Photo) ce qui sous entant je présume de vider la cellule ayant déjà une photo.
Peut on prévoir le cas ou le fichier photo d'une référence n'est pas disponible et d'écrire dans ce cas "Pas de Photo" dans la cellule.

Merci d'avance pour votre aide.

Cordialement
JPA
A voir également:

5 réponses

Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour,
j'ai trouvé dans le forum plusieurs partie de mon besoin mais je n'arrive pas à les assembler.
Pouvez-vous préciser ?

0
JPA 380 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

J'ai vu un sujet qui traite de l'insertion d'une image
Un autre qui traite de redimensionnement automatique d'image
Un autre de routine en boucle sur une colonne
Etc

Loin d'être un expert en macro VB je ne sais pas combiner des codes présent dans les réponses.

Merci
JPA
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour,

Quelque chose dans ce genre ? à adapter :chemin des photos, nombres au lieu de texte pour les ref des photos....

différents formats sont admis: jpg,png, jpeg, gif (possibilité d'autres suffixes); prise en compte du rapport des dimensions

https://www.cjoint.com/?3CjhQXHDQd6

Ne pas ouvrir directement mais télécharger et dézipper

Tu dis

0
JPA 380 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Merci beaucoup a Michel et Mike pour leurs réponses.
Je vais utiliser la solution de Michel qui répond parfaitement au problème.
La solution est tout simplement génial, reste à me l'approprier pour l'adapter à mon contexte.
Je vous souhaite un bon week end

Cordialement
JPA
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
N'hésite pas au cas où :o)

une petite amélioration pour centrer une photo verticale
With Image.ShapeRange 
               .Top = Cellule.Top + 1 
               .Left = Cellule.Left + 1 
                rapport = Round((Image.Width) / 21.16, 0) / Round((Image.Height) / 21.16, 0) 
                If rapport > 1 Then 
                    .Height = Cellule.Height - 10 
                    .Width = Cellule.Width - 2 
               Else 
                    .Height = Cellule.Height - 2 
                    .Width = Cellule.Width - 60 
                    .Left = Cellule.Left + .Width / 4 'centrage vertical 
               End If 
               .LockAspectRatio = msoFalse


et cooriger
mettre les points manquants devant Height
et supprimer .LockAspectRatio = msoFalse dans rapport>1 (redondance)

autre amélioration souhaitable et presque pr^te: enlever les photos existantes au lancement pour permettre suppression et ajout de photos

Tu dis...
0
JPA 380 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
La "petite" (mais importante) modification fonctionne parfaitement.
Les images du coup sont pile poil au centre :-))

Apres toute cette aide précieuse, je me suis lancer seul dans VB pour associer l'image à la cellule (de sorte qu'en utilisant les filtres on conserve la bonne image au bon endroit)
un truc du genre :
Selection.Placement = xlMoveAndSize
sauf qu'il faudrait que l'image soit sélectionnée et là ça se complique car excel donne comme nom d'image : "Picture x" x étant un nombre qui augmente au fur et a mesure qu'on ajoute des images.
Bref je patauge :-(
Cordialement
JPA
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
0
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour Mike-31,
Très intéressante ta solution, je vais l'étudier.
Amicales salutations.
Salutations.
Le Pingou
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Laika57
 
Bonjour.
Merci pour l'astuce.
Mais avec 45 000 réferences,ca rsque de devenir lourd non?
Perso:je travail avec la base et l'explorateur win cote à cote sur l'écran.
J'ai crée des dossiers et sous dossiers de 50 docs environ pour limiter le poids.
A+
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
C'est pour cela que si on a plus de quelques images , on évite cette solution et on passe au Vba
la méthode par rechercheV est OK pour des objets d'environ 20 à 30 Ko...
0