EXCEL 2007 - INSERER UNE IMAGE
Résolu/Fermé
Anna
-
19 juin 2009 à 12:14
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 - 16 janv. 2011 à 18:52
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 - 16 janv. 2011 à 18:52
A voir également:
- EXCEL 2007 - INSERER UNE IMAGE
- Insérer liste déroulante excel - Guide
- Insérer une vidéo sur powerpoint - Guide
- Déplacer une colonne excel - Guide
- Save as pdf office 2007 - Télécharger - Bureautique
- Comment inserer une image sur word - Guide
33 réponses
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 111
19 juin 2009 à 13:06
19 juin 2009 à 13:06
Salut,
Expliques ce que tu veux exactement faire, parce que pour mettre un photo dans une cellule, tu n'as pas besoin de VBA, et si tu veux afficher une image en fonction du contenu d'une cellule non plus
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
Expliques ce que tu veux exactement faire, parce que pour mettre un photo dans une cellule, tu n'as pas besoin de VBA, et si tu veux afficher une image en fonction du contenu d'une cellule non plus
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
bonjour mike, merci de ta réponse. Einstein avait raison, par conséquent je vais expliquer un peu plus mon souci?.
J'ai mis un bouton dans ma feuil1 qui devrait faire cela:
- aller chercher l'image jpg dans le même repertoir que le fichier excel présent
- et la coller dans la cellule B21 de toutes les autres feuilles de mon classeur.
Pour le moment j'ai trouvé cela sur le net (auteur de la macro: JBOIGONTIER)
Sub ImportImages()
repertoire = ThisWorkbook.Path & "\"
nf = Dir(repertoire & "*.jpg") ' premier fichier
Workbook.Sheets("AENA").cell("b21").Select
Do While nf <> ""
Set monimage = ActiveSheet.Pictures.Insert(nf)
monimage.Name = Left(nf, Len(nf) - 4) ' Donne un nom à l'image
ActiveCell.EntireRow.RowHeight = monimage.Height + 0
nf = Dir ' suivant
ActiveCell.Offset(1, 0).Select
Loop
End Sub
j'ai modifier la ligne en gras pour essayer de selectionner une feuille en particulier et une cellule. Mais cela ne fonctionne pas.
Merci pour votre aide
Anna
J'ai mis un bouton dans ma feuil1 qui devrait faire cela:
- aller chercher l'image jpg dans le même repertoir que le fichier excel présent
- et la coller dans la cellule B21 de toutes les autres feuilles de mon classeur.
Pour le moment j'ai trouvé cela sur le net (auteur de la macro: JBOIGONTIER)
Sub ImportImages()
repertoire = ThisWorkbook.Path & "\"
nf = Dir(repertoire & "*.jpg") ' premier fichier
Workbook.Sheets("AENA").cell("b21").Select
Do While nf <> ""
Set monimage = ActiveSheet.Pictures.Insert(nf)
monimage.Name = Left(nf, Len(nf) - 4) ' Donne un nom à l'image
ActiveCell.EntireRow.RowHeight = monimage.Height + 0
nf = Dir ' suivant
ActiveCell.Offset(1, 0).Select
Loop
End Sub
j'ai modifier la ligne en gras pour essayer de selectionner une feuille en particulier et une cellule. Mais cela ne fonctionne pas.
Merci pour votre aide
Anna
Bon j'ai résolou le souci, en partie:
Sub ImportImages()
repertoire = ThisWorkbook.Path & "\"
nf = Dir(repertoire & "*.jpg") ' premier fichier
Sheets("AENA").Range("b21:C21").Select
Do While nf <> ""
Set monimage = ActiveSheet.Pictures.Insert(nf)
monimage.Name = Left(nf, Len(nf) - 4) ' Donne un nom à l'image
ActiveCell.EntireRow.RowHeight = monimage.Height + 0
nf = Dir ' suivant
ActiveCell.Offset(1, 0).Select
Loop
End Sub
le souci maintenant c'est que l'image ne se place pas en B21:C21 !!!
vous savez?
Anna
Sub ImportImages()
repertoire = ThisWorkbook.Path & "\"
nf = Dir(repertoire & "*.jpg") ' premier fichier
Sheets("AENA").Range("b21:C21").Select
Do While nf <> ""
Set monimage = ActiveSheet.Pictures.Insert(nf)
monimage.Name = Left(nf, Len(nf) - 4) ' Donne un nom à l'image
ActiveCell.EntireRow.RowHeight = monimage.Height + 0
nf = Dir ' suivant
ActiveCell.Offset(1, 0).Select
Loop
End Sub
le souci maintenant c'est que l'image ne se place pas en B21:C21 !!!
vous savez?
Anna
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 111
19 juin 2009 à 13:37
19 juin 2009 à 13:37
Re,
Pourquoi as tu mis ("b21:C21") si tu souhaites la coller en B21 ("B21")
Sheets("AENA").Range("B21") .Select
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
Pourquoi as tu mis ("b21:C21") si tu souhaites la coller en B21 ("B21")
Sheets("AENA").Range("B21") .Select
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bon ben en fait cela a marché une fois... bizarre...
maintenant erreur : Select method range class failed
maintenant erreur : Select method range class failed
merci pour l'info mike...
Mais je ne comprends pas pourquoi cela a marché une fois et la fois d'après j'ai une erreur (post ci-dessus) alors qu le code n'a pas changé???
Mais je ne comprends pas pourquoi cela a marché une fois et la fois d'après j'ai une erreur (post ci-dessus) alors qu le code n'a pas changé???
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 111
19 juin 2009 à 13:42
19 juin 2009 à 13:42
Tu dois avoir une erreur dans une ligne, ou ligne pas à sa place dans le code, exécutes ton code pas à pas détaillé pour trouver la ligne qui bloque
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
en fait le code marche qd je suis sur la feuille "AENA" mais ne marche pas quand je suis sur la feuil1 (la ou il y a mon bouton pour activer la macro...
a l'aide je pete un cable!
a l'aide je pete un cable!
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 111
19 juin 2009 à 14:09
19 juin 2009 à 14:09
Décompose cette ligne
Sheets("AENA").Range("b21").Select
comme cela
Sheets("AENA").Select
Range("b21").Select
Tiens moi au courant
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
Sheets("AENA").Range("b21").Select
comme cela
Sheets("AENA").Select
Range("b21").Select
Tiens moi au courant
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
ça marche! c'était vraiment tou bête... je m'en souviendrai!
merci mike.
Reste que l'image ne se colle pas en B21...
merci mike.
Reste que l'image ne se colle pas en B21...
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 111
19 juin 2009 à 14:16
19 juin 2009 à 14:16
Alors mets ce code à la place des deux lignes que je t'ai donné, c'est plus propre
Application.Goto Sheets("AENA").Range("B21")
Mets ton statut en résolu, ou demande à la modération de le faire pour toi clic sur le triangle jaune en haut de ton post
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
Application.Goto Sheets("AENA").Range("B21")
Mets ton statut en résolu, ou demande à la modération de le faire pour toi clic sur le triangle jaune en haut de ton post
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
Merci mike mais mon szouci n'est que partiellement resolu!
l'image se colle bien dans la feuille AENA, mais pas en B21 ! (j'ai beau changer la range dans la macro ca ne change rien de toute facon...)
Des idées?
Anna
l'image se colle bien dans la feuille AENA, mais pas en B21 ! (j'ai beau changer la range dans la macro ca ne change rien de toute facon...)
Des idées?
Anna
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 111
19 juin 2009 à 14:32
19 juin 2009 à 14:32
si ton fichier n'est pas confidentiel, mets une copie ainsi qu'une image dans un dossier, clic dessus, envoyer vers/dossier compressé et joint le lien pour le récupéter dans un post avec ce lien ou dans un message privé, clic sur mon pseudo et message privé
https://www.cjoint.com/
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
https://www.cjoint.com/
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
Merci mike pour la proposition c'est très gentil mais le fichier est confidentiel et cela prendrait bcp de temps pour le rendre anonyme...
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 111
19 juin 2009 à 14:54
19 juin 2009 à 14:54
Re,
Une autre approche, testes ce code, lorsque tu es dans le visual, même ta feuille nommé AENA garde sa denomination Excel et porte le Nom par exemple Feuil3(AENA), dans le code cidessous change Feuil2 par Feuilxxx
Sub test()
Dim Image As Variant
Dim L As Single, T As Single, W As Single, H As Single
L = Feuil2.Range("B21").Left
T = Feuil2.Range("B21").Top
W = Feuil2.Range("B21").Width
H = Feuil2.Range("B21").Height
Image = Application.GetOpenFilename
If Image <> False Then
Feuil2.Shapes.AddPicture Image, True, True, L, T, W, H
End If
End Sub
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
Une autre approche, testes ce code, lorsque tu es dans le visual, même ta feuille nommé AENA garde sa denomination Excel et porte le Nom par exemple Feuil3(AENA), dans le code cidessous change Feuil2 par Feuilxxx
Sub test()
Dim Image As Variant
Dim L As Single, T As Single, W As Single, H As Single
L = Feuil2.Range("B21").Left
T = Feuil2.Range("B21").Top
W = Feuil2.Range("B21").Width
H = Feuil2.Range("B21").Height
Image = Application.GetOpenFilename
If Image <> False Then
Feuil2.Shapes.AddPicture Image, True, True, L, T, W, H
End If
End Sub
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
Merci mike mais je ne sais pas utiliser ce code, je ne le comprends pas...
Comment va t'il chercher mon image?
Comment va t'il chercher mon image?
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 111
19 juin 2009 à 16:33
19 juin 2009 à 16:33
Ce code sélectionne ta cellule et ouvre la boite de dialogue Fichier Ouvrir, à toi de sélectionner la photo.
Il est possible d'ajouter la sélection de la cellule cible dans une cellule par exemple la A1 dans laquelle on saisira B21 (ce qui ne rend pad le code macro figé sur la cellule B21 et donc en ressaisissant une autre référence en A1 le code s'exécutera sur la nouvelle référence etc ...) , il est également possible de paramétrer la taille de la ligne /colonne soit cellule de réception de la photo
Dans la soirée je regarde d'apporter l'équivalent afin d'afficher la photo qui se trouve dans le même répertoire
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
Il est possible d'ajouter la sélection de la cellule cible dans une cellule par exemple la A1 dans laquelle on saisira B21 (ce qui ne rend pad le code macro figé sur la cellule B21 et donc en ressaisissant une autre référence en A1 le code s'exécutera sur la nouvelle référence etc ...) , il est également possible de paramétrer la taille de la ligne /colonne soit cellule de réception de la photo
Dans la soirée je regarde d'apporter l'équivalent afin d'afficher la photo qui se trouve dans le même répertoire
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
merci mike pour l'interet que tu porte à mo souci.
j'ai changé un peu mon code:
Sub ImportImages()
repertoire = ThisWorkbook.Path & "\"
nf = Dir(repertoire & "*.jpg") ' premier fichier
Sheets("AENA").Select
Range("b21").Select
Set monimage = ActiveSheet.Pictures.Insert(nf)
End Sub
voila... je suis pas experte comme tu peux le voir... mais j'essaie de bidouiller :-)
Cette macro fonctionne bien, mais l'image ne se colle pas ou je voudrais (en B21, ou au dessus!, pas besoin de resizer ou de la mettre ailleurs...)
Merci
j'ai changé un peu mon code:
Sub ImportImages()
repertoire = ThisWorkbook.Path & "\"
nf = Dir(repertoire & "*.jpg") ' premier fichier
Sheets("AENA").Select
Range("b21").Select
Set monimage = ActiveSheet.Pictures.Insert(nf)
End Sub
voila... je suis pas experte comme tu peux le voir... mais j'essaie de bidouiller :-)
Cette macro fonctionne bien, mais l'image ne se colle pas ou je voudrais (en B21, ou au dessus!, pas besoin de resizer ou de la mettre ailleurs...)
Merci
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 111
19 juin 2009 à 17:55
19 juin 2009 à 17:55
Re,
J'ai cette ligne de ton code qui plante, comme je n'ai pas le code initial pourrait tu me dire
l'image que tu souhaites coller en B21 sur la feuille AENA, est elle dans le même répertoire, et à quoi correspond Pictures dans la ligne de ton code (une page de ton dossier nommé pictures !
et monimage es ce une plage nommée, j'ai l'inpression qu'il manque une variable, ou mal définie
Set monimage = ActiveSheet.Pictures.Insert(nf)
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
J'ai cette ligne de ton code qui plante, comme je n'ai pas le code initial pourrait tu me dire
l'image que tu souhaites coller en B21 sur la feuille AENA, est elle dans le même répertoire, et à quoi correspond Pictures dans la ligne de ton code (une page de ton dossier nommé pictures !
et monimage es ce une plage nommée, j'ai l'inpression qu'il manque une variable, ou mal définie
Set monimage = ActiveSheet.Pictures.Insert(nf)
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)