Macro de mise à jour Photo sous Excel

Résolu/Fermé
JPA 380 Messages postés 4 Date d'inscription vendredi 8 mars 2013 Statut Membre Dernière intervention 9 mars 2013 - 8 mars 2013 à 15:36
JPA 380 Messages postés 4 Date d'inscription vendredi 8 mars 2013 Statut Membre Dernière intervention 9 mars 2013 - 9 mars 2013 à 23:02
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 12227 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 janvier 2025 1 454
8 mars 2013 à 22:46
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 vendredi 8 mars 2013 Statut Membre Dernière intervention 9 mars 2013
9 mars 2013 à 00:53
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
9 mars 2013 à 07:49
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 vendredi 8 mars 2013 Statut Membre Dernière intervention 9 mars 2013
9 mars 2013 à 11:29
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 9/03/2013 à 11:58
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 vendredi 8 mars 2013 Statut Membre Dernière intervention 9 mars 2013
9 mars 2013 à 23:02
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 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 110
9 mars 2013 à 08:22
0
Le Pingou Messages postés 12227 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 janvier 2025 1 454
9 mars 2013 à 15:41
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
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
9 mars 2013 à 14:53
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