Insertion automatique d'images sous excel
Résolu/Fermé
A voir également:
- Insérer image automatiquement excel
- Insérer liste déroulante excel - Guide
- Insérer une vidéo dans powerpoint - Guide
- Insérer signature word - Guide
- Si et excel - Guide
- Comment inserer une image sur word - Guide
42 réponses
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
18 janv. 2008 à 06:56
18 janv. 2008 à 06:56
Bonjour aussi
Bonjour, juste pour remercier le coder qui à fait ce code ,c'est exactement ce que je cherchais et étant dans le métier (mais commercial pour une SSII), je dois juste le féliciter pour le boulot !!
Bravo et merci pour l'engagement !
@+
Vincent
Bravo et merci pour l'engagement !
@+
Vincent
Bonjour,
ça fait un petit bout de tps que je cherche un tel code n'y connaissant pas grd chose, merci bien Eriiic :-).
est-il possible d'y ajouter une vérif si l'image existe sinon d'afficher une image par défaut, genre noimg.jpg
j'ai renseigné toutes mes lignes, en fait j'ai le nom d'une réf ex: 101 et son image associée 101.jpg , bref du coup quand il n'y a pas l'image il y a erreur et s'arrête.
Merci pour les infos
ça fait un petit bout de tps que je cherche un tel code n'y connaissant pas grd chose, merci bien Eriiic :-).
est-il possible d'y ajouter une vérif si l'image existe sinon d'afficher une image par défaut, genre noimg.jpg
j'ai renseigné toutes mes lignes, en fait j'ai le nom d'une réf ex: 101 et son image associée 101.jpg , bref du coup quand il n'y a pas l'image il y a erreur et s'arrête.
Merci pour les infos
Slt,
merci pour cette réponse rapide
l'affichage de l'image par défaut se fait mais une fois faite j'ai un message d'erreur " fichier introuvable"
une idée
Cute987
merci pour cette réponse rapide
l'affichage de l'image par défaut se fait mais une fois faite j'ai un message d'erreur " fichier introuvable"
une idée
Cute987
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re
en fait c'est bizarre, parfois tout se passe bien, cad il affiche les images dont j'ai indiqué le chemin
et d'autres il bloque dès qu'il affiche l'image par défaut
...
en fait c'est bizarre, parfois tout se passe bien, cad il affiche les images dont j'ai indiqué le chemin
et d'autres il bloque dès qu'il affiche l'image par défaut
...
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
16 juin 2008 à 19:14
16 juin 2008 à 19:14
Bonsoir,
Ce petit programme est prévu pour afficher des images dont l'adresse correcte est dans des cellules d'une sélection d'une seule zone avec éventuellement des cellules vides.
Dans ces conditions il fonctionne je pense correctement.
Comprend bien qu'il est hors de question de traiter les cas particuliers, l'ajout d'une image par défaut a peut-être ajouté des dysfonctionnements bien que mes tests ne le montrent pas.
Je ne suis pas avec TA feuille sur TON micro pour tout contrôler.
Si tu veux, donne moi un cas précis où il bugue à condition que ce soit reproductible, donc en décrivant bien la configuration de ta feuille et les manip à faire pour le reproduire.
Pour les tests je veux le chemin des images sur
eric
Ce petit programme est prévu pour afficher des images dont l'adresse correcte est dans des cellules d'une sélection d'une seule zone avec éventuellement des cellules vides.
Dans ces conditions il fonctionne je pense correctement.
Comprend bien qu'il est hors de question de traiter les cas particuliers, l'ajout d'une image par défaut a peut-être ajouté des dysfonctionnements bien que mes tests ne le montrent pas.
Je ne suis pas avec TA feuille sur TON micro pour tout contrôler.
Si tu veux, donne moi un cas précis où il bugue à condition que ce soit reproductible, donc en décrivant bien la configuration de ta feuille et les manip à faire pour le reproduire.
Pour les tests je veux le chemin des images sur
c:\tmp\(y compris l'image par défaut), ta feuille, et les images en cause (tu peux mettre plusieurs liens avec la même image pour alléger)
eric
Bonjour,
je resens une certaine tension ... :) don't worry
Cela ne vient pas de ton code a priori sinon cela serait qqchose de récurrent en outre les résultats diffèrent c'est que ça provient d'autre chose et je supçonne le format de mes chps ... que j'ai extrait d'une base mdb blablabla... pour 2 chps au même format numérique, il ne reconnait certaines données pourtant identique !
mais bon ça c'est autre chose
je ne souhaite pas d'embêter plus longtemps et te remercie
parmis toutes mes recherches ton code est le plus abouti
Merci Eric
je resens une certaine tension ... :) don't worry
Cela ne vient pas de ton code a priori sinon cela serait qqchose de récurrent en outre les résultats diffèrent c'est que ça provient d'autre chose et je supçonne le format de mes chps ... que j'ai extrait d'une base mdb blablabla... pour 2 chps au même format numérique, il ne reconnait certaines données pourtant identique !
mais bon ça c'est autre chose
je ne souhaite pas d'embêter plus longtemps et te remercie
parmis toutes mes recherches ton code est le plus abouti
Merci Eric
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
17 juin 2008 à 18:29
17 juin 2008 à 18:29
Ah ben si y'a plus d'problème tout va bien alors ;-)
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
6 août 2008 à 12:26
6 août 2008 à 12:26
de rien et merci.
Une version plus récente avec une meilleure gestion des erreurs :
eric
Une version plus récente avec une meilleure gestion des erreurs :
Sub AffImage() ' Sélectionner les cellules contenant un lien vers une image et appeler la macro ' AffImage les affichera sur le lien ou dans la colonne de gauche ou de droite Const hDefaut = 75 ' hauteur des images Const imgDefaut = "" ' saisir chemin complet et le nom de l'image par défaut à afficher si erreur Dim msg As String, r As Long, h As Long, lmax As Long Dim c As Range, numfich As Integer Dim fich msg = "Oui : Afficher les images à gauche des liens sélectionnés" & vbCrLf msg = msg & "Non : Afficher les images sur les liens sélectionnés" & vbCrLf msg = msg & "Annuler : Afficher les images à droite des liens sélectionnés" r = MsgBox(msg, vbYesNoCancel, "Cellules où mettre les images") If r = vbYes Then r = -1 ElseIf r = vbNo Then r = 0 Else r = 1 End If h = InputBox("Hauteur des lignes :", "Choix hauteur", hDefaut) For Each c In Selection 'c.ColumnWidth = 20 fich = c.Value ' test fichier If fich <> "" Then numfich = FreeFile() On Error GoTo errfich Open fich For Input As #numfich Close #numfich End If ' If fich <> "" Then c.RowHeight = h 'fixer la hauteur de ligne ActiveSheet.Pictures.Insert(fich).Select 'ouverture image With Selection.ShapeRange .LockAspectRatio = msoTrue 'conserver les proportions .Height = h - 4 'hauteur de l'image = hauteur des lignes - 4 .Left = c.Offset(0, r).Left + 2 'à gauche colonne A (sinon tu calcules avec la largeur de colonne) .Top = c.Top + 2 'et positionner verticalement If .Width > lmax Then lmax = .Width ' limitation largeur colonne If lmax > 500 Then lmax = 500 c.Offset(0, r).ColumnWidth = lmax + 4 End With End If Next c Exit Sub errfich: fich = imgDefaut Resume Next End Sub
eric
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
3 nov. 2008 à 19:20
3 nov. 2008 à 19:20
Bonsoir,
au départ non, maintenant oui en ajoutant ce qui est en gras :
J'en profite pour remettre un fichier exemple à jour : AffImages.xls
Et tu peux aller voir cette discussion qui t'interessera peut-être aussi : inserer une image dans un commentaire
eric
au départ non, maintenant oui en ajoutant ce qui est en gras :
Sub AffImage() ' Sélectionner les cellules contenant un lien vers une image et appeler la macro ' AffImage les affichera sur le lien ou dans la colonne de gauche ou de droite Const hDefaut = 75 ' hauteur des images Const imgDefaut = "" ' saisir chemin complet et le nom de l'image par défaut à afficher si erreur Dim msg As String, r As Long, h As Long, lmax As Long Dim c As Range, numfich As Integer Dim fich msg = "Oui : Afficher les images à gauche des liens sélectionnés" & vbCrLf msg = msg & "Non : Afficher les images sur les liens sélectionnés" & vbCrLf msg = msg & "Annuler : Afficher les images à droite des liens sélectionnés" r = MsgBox(msg, vbYesNoCancel, "Cellules où mettre les images") If r = vbYes Then r = -1 ElseIf r = vbNo Then r = 0 Else r = 1 End If h = InputBox("Hauteur des lignes :", "Choix hauteur", hDefaut) For Each c In Selection 'c.ColumnWidth = 20 fich = c.Value ' test fichier If fich <> "" Then If Left(fich, 7) = "http://" Then ' on conserve le lien sur le net Else numfich = FreeFile() On Error GoTo errfich Open fich For Input As #numfich Close #numfich End If End If ' If fich <> "" Then c.RowHeight = h 'fixer la hauteur de ligne ActiveSheet.Pictures.Insert(fich).Select 'ouverture image With Selection.ShapeRange .LockAspectRatio = msoTrue 'conserver les proportions .Height = h - 4 'hauteur de l'image = hauteur des lignes - 4 .Left = c.Offset(0, r).Left + 2 'à gauche colonne A (sinon tu calcules avec la largeur de colonne) .Top = c.Top + 2 'et positionner verticalement If .Width > lmax Then lmax = .Width ' limitation largeur colonne If lmax > 500 Then lmax = 500 c.Offset(0, r).ColumnWidth = lmax + 4 End With End If Next c Exit Sub errfich: fich = imgDefaut Resume Next End Sub
J'en profite pour remettre un fichier exemple à jour : AffImages.xls
Et tu peux aller voir cette discussion qui t'interessera peut-être aussi : inserer une image dans un commentaire
eric
Merci Eric pour votre aide... malheureusement cela n'as pas marché; je recois un erreur 400; (mon connection internete marche...)
et j'ai essayé sur votre lien le test, rien se passe : (
j'ai la version 2007...
mon fichier est comme ca: http://www.cijoint.fr/cjlink.php?file=cj200811/cijVXl5TLZ.xls
merci encore!
anna
et j'ai essayé sur votre lien le test, rien se passe : (
j'ai la version 2007...
mon fichier est comme ca: http://www.cijoint.fr/cjlink.php?file=cj200811/cijVXl5TLZ.xls
merci encore!
anna
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
3 nov. 2008 à 22:31
3 nov. 2008 à 22:31
Dans le fichier exemple clique sur le bouton 'test', choisis la hauteur de ligne, et clique sur 'annule' pour mettre les images à droite du lien (je n'ai pas fait de formulaire vba avec les bons noms sur les boutons pour que ce soit utilisable avec le code seul, vu que les fichiers ne sont accessibles qu'un mois).
Les images fichiers ne s'afficheront bien sûr que si tu mets des chemins d'images qui existent sur ton micro, la 4ème (lien image sur ccmdoit s'afficher).
Je regarde ton fichier...
Les images fichiers ne s'afficheront bien sûr que si tu mets des chemins d'images qui existent sur ton micro, la 4ème (lien image sur ccmdoit s'afficher).
Je regarde ton fichier...
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
3 nov. 2008 à 22:41
3 nov. 2008 à 22:41
et ça marche sur ton fichier si tu y colles le code dans un module...
Il faut sélectionner la plage où tu as tes liens avant d'appeler la macro AffImage.
Je t'ai ajouté un bouton 'test' qui sélectionne L2:L9 et appelle la macro
http://www.cijoint.fr/cjlink.php?file=cj200811/cijKhSbc6v.xls
eric
PS: j'ajoute que si tu fais plusieurs fois la manip les images vont s'empiler et prendre de la place pour rien dans le fichier. Supprimer les images avant de les re-telecharger.
Il faut sélectionner la plage où tu as tes liens avant d'appeler la macro AffImage.
Je t'ai ajouté un bouton 'test' qui sélectionne L2:L9 et appelle la macro
http://www.cijoint.fr/cjlink.php?file=cj200811/cijKhSbc6v.xls
eric
PS: j'ajoute que si tu fais plusieurs fois la manip les images vont s'empiler et prendre de la place pour rien dans le fichier. Supprimer les images avant de les re-telecharger.
Salut Eric,
il commence bien en selectionnant le L2:L9 mais il s'arrete avec un erreur: erreur d'execution '1004': Impossible de lire la propriété Insert de la classe Pictures
Le macro, je fais simplement copy & paste, non? ou je dois changer qq chose dedans? et les images devrait s'afficher a la colonne que je choisis a coté, non?
En appuyant sur le macro, il agrandit la ligne a 75, et puis le message erreur... Au Secours!
merci, Anna
il commence bien en selectionnant le L2:L9 mais il s'arrete avec un erreur: erreur d'execution '1004': Impossible de lire la propriété Insert de la classe Pictures
Le macro, je fais simplement copy & paste, non? ou je dois changer qq chose dedans? et les images devrait s'afficher a la colonne que je choisis a coté, non?
En appuyant sur le macro, il agrandit la ligne a 75, et puis le message erreur... Au Secours!
merci, Anna
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
4 nov. 2008 à 20:22
4 nov. 2008 à 20:22
Bonsoir,
Je viens de tester sur 2007 et effectivement il refuse d'insérer une image qui ne soit pas sur le disque dur...
Et en enregistrement de macro pour voir s'il y avait de nouvelles méthodes il n'enregistre rien.
Je vais continuer de chercher un peu mais pour l'instant je n'ai pas de réponse
eric
Je viens de tester sur 2007 et effectivement il refuse d'insérer une image qui ne soit pas sur le disque dur...
Et en enregistrement de macro pour voir s'il y avait de nouvelles méthodes il n'enregistre rien.
Je vais continuer de chercher un peu mais pour l'instant je n'ai pas de réponse
eric
Bonjour Eriiic,
Tout d' abord, un GRAND MERCI pour cette super macro qui marchait magnifiquement bien tant que j' etais sous excel 2003.
Mais je viens de passer sous excel 2010 et les choses se compliquent un peu...
La macro fonctionne toujours tres bien, mais a condition que le document excel reste dans le meme repertoire que les images.
Si je le sauve dans un autre repertoire, les images disparaissent et sont remplacees par un carre blanc contenant le message d' erreur suivant : " The linked image cannot be displayed. The file may have been moved, renamed or deleted. Verify that the link points to the correct file and location" .
Y a t' il un moyen de " figer" les images dans le fichier excel apres avoir utilise la macro ?
Ou de corriger la macro ?
Un grand merci d' avance !
AD.
Tout d' abord, un GRAND MERCI pour cette super macro qui marchait magnifiquement bien tant que j' etais sous excel 2003.
Mais je viens de passer sous excel 2010 et les choses se compliquent un peu...
La macro fonctionne toujours tres bien, mais a condition que le document excel reste dans le meme repertoire que les images.
Si je le sauve dans un autre repertoire, les images disparaissent et sont remplacees par un carre blanc contenant le message d' erreur suivant : " The linked image cannot be displayed. The file may have been moved, renamed or deleted. Verify that the link points to the correct file and location" .
Y a t' il un moyen de " figer" les images dans le fichier excel apres avoir utilise la macro ?
Ou de corriger la macro ?
Un grand merci d' avance !
AD.
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
14 avril 2011 à 19:05
14 avril 2011 à 19:05
Bonjour,
Alors là tu m'apprends qcq chose.
J'ignorais que 2010 ne stockait que le lien et non l'image elle même intégrée dans le fichier comme sur 2003...
Ca a l'air d'être ça vu ta description du problème.
Si tu n'utilises pas les nouvelles fonctionnalités de 2010 sur ce fichier tu peux toujours tenter de l'enregistrer au format 2003 (.xls).
Mais si le nouveau format 2007-2010 stocke les images à l'extérieur du fichier tu n'as d'autres choix que de les laisser là où excel les a mises et des les déplacer en même temps.
Là pour l'instant je n'ai pas les moyens de tester sur 2010
eric
Alors là tu m'apprends qcq chose.
J'ignorais que 2010 ne stockait que le lien et non l'image elle même intégrée dans le fichier comme sur 2003...
Ca a l'air d'être ça vu ta description du problème.
Si tu n'utilises pas les nouvelles fonctionnalités de 2010 sur ce fichier tu peux toujours tenter de l'enregistrer au format 2003 (.xls).
Mais si le nouveau format 2007-2010 stocke les images à l'extérieur du fichier tu n'as d'autres choix que de les laisser là où excel les a mises et des les déplacer en même temps.
Là pour l'instant je n'ai pas les moyens de tester sur 2010
eric
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
28 janv. 2010 à 18:45
28 janv. 2010 à 18:45
Nouvelle version avec un bug corrigé et la possibilité de centrer les images dans la cellule en changeant une constante du programme : AffImages.xls
eric
eric
oursmili
Messages postés
5
Date d'inscription
vendredi 10 octobre 2014
Statut
Membre
Dernière intervention
14 octobre 2014
10 oct. 2014 à 16:39
10 oct. 2014 à 16:39
Bonjour eriiic,
Ton programme correspond tout a fait à mon besoin, mais je n'arrive pas à le récupérer , y a t'il une procédure particulières ?
Merci d'avance
Ton programme correspond tout a fait à mon besoin, mais je n'arrive pas à le récupérer , y a t'il une procédure particulières ?
Merci d'avance
Bonjour eriiic,
Super pour ta macro, elle a résolu une grande partie de mes pbs.
J'ai questions:
- dans le dernier fichier Affimages.xls, je n'arrive pas à trouver comment faire pour centrer les photo dans la cellule.
- Sais-tu comment faire pour que je puisse transformer ce fichier excel obtenu en fichier word avec une page word par ligne excel. J'ai réussi grace au publipostage et à la fusion à créer ce que je voulais sauf que je ne sais pas comment insérer automatiquement la photo.
Merci
Super pour ta macro, elle a résolu une grande partie de mes pbs.
J'ai questions:
- dans le dernier fichier Affimages.xls, je n'arrive pas à trouver comment faire pour centrer les photo dans la cellule.
- Sais-tu comment faire pour que je puisse transformer ce fichier excel obtenu en fichier word avec une page word par ligne excel. J'ai réussi grace au publipostage et à la fusion à créer ce que je voulais sauf que je ne sais pas comment insérer automatiquement la photo.
Merci
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
Modifié par eriiic le 5/05/2010 à 11:06
Modifié par eriiic le 5/05/2010 à 11:06
Bonjour,
C'est une constante en début de programme à modifier :
Const centrerHz As Boolean = False ' = True pour centrer horizontalement dans la cellule
tu remplaces False par True et c'est tout
Pour le 2° ce n'est pas du tout mon rayon, démarre une nouvelle discussion il y a des bons dans ce domaine sur le forum ;-)
eric
C'est une constante en début de programme à modifier :
Const centrerHz As Boolean = False ' = True pour centrer horizontalement dans la cellule
tu remplaces False par True et c'est tout
Pour le 2° ce n'est pas du tout mon rayon, démarre une nouvelle discussion il y a des bons dans ce domaine sur le forum ;-)
eric
Bonjour Eric
J'ai un petit soucis.
je m'explique:
j'ai une cellule que j'ai paramétré pour quelle change son contenu (lien image sur mon disque dur), le probleme est que je voudrai que le lien et donc l'image associé à ce lien change lorsque ce fameux lien change lui aussi.
en gros:
1 lien qui change (car cellule paramétré) ==> une image a chaque fois que le lien change.
Vous pensez que c'est fesable?
merci par avance.
Julien
J'ai un petit soucis.
je m'explique:
j'ai une cellule que j'ai paramétré pour quelle change son contenu (lien image sur mon disque dur), le probleme est que je voudrai que le lien et donc l'image associé à ce lien change lorsque ce fameux lien change lui aussi.
en gros:
1 lien qui change (car cellule paramétré) ==> une image a chaque fois que le lien change.
Vous pensez que c'est fesable?
merci par avance.
Julien
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
15 sept. 2010 à 10:32
15 sept. 2010 à 10:32
Bonjour,
Le programme n'est pas conçu pour fonctionner ainsi.
Le plus simple est, lorsque tu modifies ton lien, de supprimer l'image et de la recréer.
eric
Le programme n'est pas conçu pour fonctionner ainsi.
Le plus simple est, lorsque tu modifies ton lien, de supprimer l'image et de la recréer.
eric
Bonjour,
tout d'abord eriic, un grand merci, ton programme m'a fait gagner énormément de temps!
Par contre, je désire centrer mon image dans la cellule, est-ce possible?
j'avais cru qu'en utilisant les commandes
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
ça aurait marché, mais apparement pas (NB je n'y connais pas grand chose en VBA, en fait il y a 1 h je ne savais pas que ça existait...)
tout d'abord eriic, un grand merci, ton programme m'a fait gagner énormément de temps!
Par contre, je désire centrer mon image dans la cellule, est-ce possible?
j'avais cru qu'en utilisant les commandes
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
ça aurait marché, mais apparement pas (NB je n'y connais pas grand chose en VBA, en fait il y a 1 h je ne savais pas que ça existait...)
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
14 oct. 2010 à 18:47
14 oct. 2010 à 18:47
Bonjour,
J'en parle dans le post #54
Et pour le centrage vertical vu les images sont redimensionnées à la hauteur de ligne-4, elles sont centrée automatiquement.
eric
J'en parle dans le post #54
Et pour le centrage vertical vu les images sont redimensionnées à la hauteur de ligne-4, elles sont centrée automatiquement.
eric
Bonjour,
J'ai intégré la macro Affimage qui fonctionne très bien mais effectivement avec EXCEL 2010, l'image n'est pas stockée dans le fichier mais simplement rappelée à chaque ouverture.
Pour éviter cela, il faut faire couper/coller image jpeg sur chaque image.
Serait-il possible d'ajouter le petit code permettant d'effectuer cela automatique : après insertion de chaque image, avant de passer au r suivant.
Merci d'avance.
J'ai intégré la macro Affimage qui fonctionne très bien mais effectivement avec EXCEL 2010, l'image n'est pas stockée dans le fichier mais simplement rappelée à chaque ouverture.
Pour éviter cela, il faut faire couper/coller image jpeg sur chaque image.
Serait-il possible d'ajouter le petit code permettant d'effectuer cela automatique : après insertion de chaque image, avant de passer au r suivant.
Merci d'avance.