EXCEL 2007 - INSERER UNE IMAGE
Résolu
Anna
-
Mike-31 Messages postés 18405 Date d'inscription Statut Contributeur Dernière intervention -
Mike-31 Messages postés 18405 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Sous EXCEL 2007, je cherche desesperement à insérer une image par VBA dans une feuille et cellule en particulier. j'ai mis un bouton sur la feuil1 et assigner la macro suivante:
j'ai essayé cela:
Sub TestInsertPicture()
InsertPictureInRange "D:\Documents and Settings\anna\Desktop\OW", _
Range("B21"), True, True
End Sub
mais cela ne marche pas...
merci pour votre aide
Anna
Sous EXCEL 2007, je cherche desesperement à insérer une image par VBA dans une feuille et cellule en particulier. j'ai mis un bouton sur la feuil1 et assigner la macro suivante:
j'ai essayé cela:
Sub TestInsertPicture()
InsertPictureInRange "D:\Documents and Settings\anna\Desktop\OW", _
Range("B21"), True, True
End Sub
mais cela ne marche pas...
merci pour votre aide
Anna
A voir également:
- EXCEL 2007 - INSERER UNE IMAGE
- Insérer liste déroulante excel - Guide
- Insérer une vidéo dans powerpoint - Guide
- Save as pdf office 2007 - Télécharger - Bureautique
- Déplacer une colonne excel - Guide
- Insérer signature word - Guide
33 réponses
bonjour,
j'ai ça qui trainait sur une étagère mais créé en 2003 (tu clique sue la cellule orange)... peut-être que sur 2007
https://www.cjoint.com/?gtsCUOQzuQ
Edit: 18:30 changé de lien (erreur dans le nom de la photo)
j'ai ça qui trainait sur une étagère mais créé en 2003 (tu clique sue la cellule orange)... peut-être que sur 2007
https://www.cjoint.com/?gtsCUOQzuQ
Edit: 18:30 changé de lien (erreur dans le nom de la photo)
Salut Michel_m
Merci de te joindre à cette discussion, c'est une autre approche de code, on pourrait en écrire des dizaines, mais le problème de Anna, attaché à ce code
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
elle l' a modifié ci-dessous, chez elle il à l'air de fonctionner, a part que l'image se colle de façon anarchique alors que chez moi je n'arive pas à afficher l'image, je pense à un problème de variable mais j'avoue que je fatigue
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
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
Merci de te joindre à cette discussion, c'est une autre approche de code, on pourrait en écrire des dizaines, mais le problème de Anna, attaché à ce code
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
elle l' a modifié ci-dessous, chez elle il à l'air de fonctionner, a part que l'image se colle de façon anarchique alors que chez moi je n'arive pas à afficher l'image, je pense à un problème de variable mais j'avoue que je fatigue
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
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
excusez moi d'avoir dérangé....
Non mais pas de tout bien au contraire, je te tendais la perche pour voir si tu vayais ce qui n'allait pas dans son code, avec un regard nouveau dans la discussion c'est parfois plus facile, j'avoue que je ne comprends pas que ça marche partiellement chez Anna et je vois pas ce qui cloche parce que chez moi je n'arrive pas à afficher quoi que ce soit.
peut être verras tu le problème
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
peut être verras tu le problème
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
tout simplement j'ai lu la demande initiale:
je cherche à insérer une image par VBA dans une feuille et cellule en particulier
je croyais que mon truc répondait à la demande ( clic sur une cellule au lieu d'un bouton) sur XL 2003, c'est tout, alors je me suis dit que peut-^etre ca pourrait marcher sur 2007...
comme apparemment c'était pas la demande, donc j'avais foutu le B. et je m'en suis excusé, pas de quoi s'inquiéter...
je cherche à insérer une image par VBA dans une feuille et cellule en particulier
je croyais que mon truc répondait à la demande ( clic sur une cellule au lieu d'un bouton) sur XL 2003, c'est tout, alors je me suis dit que peut-^etre ca pourrait marcher sur 2007...
comme apparemment c'était pas la demande, donc j'avais foutu le B. et je m'en suis excusé, pas de quoi s'inquiéter...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re Michel_m,
L’exemple que tu as donné, comme celui que j'ai donné d'ailleurs fonctionnent parfaitement, ce qui m'énerve, c'est que le code récupéré par Anna marche aléatoirement sur sa machine et ne pas pouvoir afficher quoi que ce soit sur ma machine et surtout trouver l'erreur.
C'est pour cela également que je lui avais demandé de mettre un petit fichier montage sur le forum.
Demain je ne suis pas là, mais il faut trouver l'erreur
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
L’exemple que tu as donné, comme celui que j'ai donné d'ailleurs fonctionnent parfaitement, ce qui m'énerve, c'est que le code récupéré par Anna marche aléatoirement sur sa machine et ne pas pouvoir afficher quoi que ce soit sur ma machine et surtout trouver l'erreur.
C'est pour cela également que je lui avais demandé de mettre un petit fichier montage sur le forum.
Demain je ne suis pas là, mais il faut trouver l'erreur
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
oula je vois que mon souci a interessé! Merci a vous deux!
pour le moment j'en suis à ce stade: j'ai modifié mon code pour intégrer l'image, et la placer sur la cellule B21. Cela a marché durant une heure, puis je l'ai enregristré en format 2007, et ce matin le MEME CODE ne fonctionne plus et bloque a la ligne en gras ci-dessous.
Quelques précisions: l'image que je souhaite intégrer est placée dans le meme repertoire que le classeur EXCEL, d'où repertoire = ThisWorkbook.Path & "\" et nf = Dir(repertoire & "*.jpg").
voici la dernière version du code (avec la ligne qui bloque maintenant, en gras):
Sub ImportImages()
Application.ScreenUpdating = False
repertoire = ThisWorkbook.Path & "\"
nf = Dir(repertoire & "*.jpg")
Sheets("AENA").Select
Set monimage = ActiveSheet.Pictures.Insert(nf)
With monimage
.Top = Sheets("AENA").Range("B21").Top
.Left = Sheets("AENA").Range("B21").Left
End With
Application.ScreenUpdating = True
End Sub
je le repete: ce code a déjà fonctionné mais ne fonctionne plus!!! pourquoi?????
pour le moment j'en suis à ce stade: j'ai modifié mon code pour intégrer l'image, et la placer sur la cellule B21. Cela a marché durant une heure, puis je l'ai enregristré en format 2007, et ce matin le MEME CODE ne fonctionne plus et bloque a la ligne en gras ci-dessous.
Quelques précisions: l'image que je souhaite intégrer est placée dans le meme repertoire que le classeur EXCEL, d'où repertoire = ThisWorkbook.Path & "\" et nf = Dir(repertoire & "*.jpg").
voici la dernière version du code (avec la ligne qui bloque maintenant, en gras):
Sub ImportImages()
Application.ScreenUpdating = False
repertoire = ThisWorkbook.Path & "\"
nf = Dir(repertoire & "*.jpg")
Sheets("AENA").Select
Set monimage = ActiveSheet.Pictures.Insert(nf)
With monimage
.Top = Sheets("AENA").Range("B21").Top
.Left = Sheets("AENA").Range("B21").Left
End With
Application.ScreenUpdating = True
End Sub
je le repete: ce code a déjà fonctionné mais ne fonctionne plus!!! pourquoi?????
Salut,
Pour ne rien te cacher, chez moi c'est pareil quelque soit la version Excel, lorsque le code marche, et sans raison il se met à planter et toujours à la même ligne. Sincèrement tu devrais regarder le code proposé par Michel_m sur le post 21 ou le mien sur le post 16 qu'il suffira d'adapter mais rien de bien important, en plus il est possible de paramétrer facilement la taille de la cellule cible et éventuellement choisir son image
Enfin tu vois
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
Pour ne rien te cacher, chez moi c'est pareil quelque soit la version Excel, lorsque le code marche, et sans raison il se met à planter et toujours à la même ligne. Sincèrement tu devrais regarder le code proposé par Michel_m sur le post 21 ou le mien sur le post 16 qu'il suffira d'adapter mais rien de bien important, en plus il est possible de paramétrer facilement la taille de la cellule cible et éventuellement choisir son image
Enfin tu vois
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
aarrgghh !! je me demandes quand pourquoi ce code fonctionne toute un après midi et subitement ca bloque...!!!
Bon je vais me pencher sur vos proposition de codes... Merci bcp! mais je suis qd meme très ennuyée que le mien soit si capricieux!!
Si qq un à une idée du pourquoi... Merci
Anna
Bon je vais me pencher sur vos proposition de codes... Merci bcp! mais je suis qd meme très ennuyée que le mien soit si capricieux!!
Si qq un à une idée du pourquoi... Merci
Anna
Salut,
regardes ce code, il t'ouvre Mes documents pour un éventail de choix important, mais peut se limiter à une adresse ciblée ou dans le genre de ton code pour incruster l'image contenue dans le répertoire, d'entrée dans ce code deux lignes sont inutile qui servent à dimensionner la cellule de réception
Sub Insertion_Image_Aux_Dimension_Cellule()
Dim Image As Variant
Dim L As Single, T As Single, W As Single, H As Single
'Dimensionne la cellule
ActiveCell.Offset().RowHeight = 63.75
ActiveCell.Offset().ColumnWidth = 13.86
'ou
' Rows("21:21").RowHeight = 63.75
'Columns("B:B").ColumnWidth = 13.86
'sélectionne la cellule de réception
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)
regardes ce code, il t'ouvre Mes documents pour un éventail de choix important, mais peut se limiter à une adresse ciblée ou dans le genre de ton code pour incruster l'image contenue dans le répertoire, d'entrée dans ce code deux lignes sont inutile qui servent à dimensionner la cellule de réception
Sub Insertion_Image_Aux_Dimension_Cellule()
Dim Image As Variant
Dim L As Single, T As Single, W As Single, H As Single
'Dimensionne la cellule
ActiveCell.Offset().RowHeight = 63.75
ActiveCell.Offset().ColumnWidth = 13.86
'ou
' Rows("21:21").RowHeight = 63.75
'Columns("B:B").ColumnWidth = 13.86
'sélectionne la cellule de réception
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)
Je cherche à visualiser à l'impression les commentaires insérés sur feuille de calcul Excel, comment m'y prendre
Salut,
Tu aurais du ouvrir ta propre discussion et non relancer une ancienne qui est en statut résolu.
enfin regarde si c'est ce que tu cherches
Sous Excel 2007 et 2010
Onglet Mise en Mise en page/module mise en page soit on clic sur Imprimer les titres soit on active l'assistant de mise en page grâce au petit carré avec la flèche en bas à droite du module.
Dans l'assistant, onglet Feuille on trouve Commentaire, choisir le mode d'impression en fin de page ou tel qu'ils sont sur la page, dans ce cas, ils doivent être affichés sur la feuille.
Sous Excel 2003 il faut passer par Fichier/Mise en page
ATTENTION DE DESACTIVER CETTE FONCTION SINON LES COMMENTAIRES SERONT AUTOMATIQUEMENT IMPRIMES A CHAQUE IMPRESSION.
Tu aurais du ouvrir ta propre discussion et non relancer une ancienne qui est en statut résolu.
enfin regarde si c'est ce que tu cherches
Sous Excel 2007 et 2010
Onglet Mise en Mise en page/module mise en page soit on clic sur Imprimer les titres soit on active l'assistant de mise en page grâce au petit carré avec la flèche en bas à droite du module.
Dans l'assistant, onglet Feuille on trouve Commentaire, choisir le mode d'impression en fin de page ou tel qu'ils sont sur la page, dans ce cas, ils doivent être affichés sur la feuille.
Sous Excel 2003 il faut passer par Fichier/Mise en page
ATTENTION DE DESACTIVER CETTE FONCTION SINON LES COMMENTAIRES SERONT AUTOMATIQUEMENT IMPRIMES A CHAQUE IMPRESSION.
ton code m'interesse et il se rapproche bcp du mien (voir derniers posts).
Mais je retrouve le même problème qu'avec le mien! il y a erreur a cette ligne :
Set Image = ActiveSheet.Pictures.Insert(design)
erreur: Unable to get the Insert property of the picture class
Helllp!
il faut que tu télécharges (conseil:crées un dossiers "téléchargés" et paramètre ton navigateur pour télécharger par défaut dans ce dossier) puis après seulement, tu extrais le zip et ca marchera...
D'autre part, tu t'es basé sur une démo de Boisgontier et tu as eu raison. seulement la procédure convient mal à ce que tu cherches à réaliser insérer une image par VBA dans une feuille :
soit tu mets les .jpg dans le m^me dossier; soit tu mets dans un autre dossier et ouvres par getfileopen pour choisir ta photo comme te l'as indiqué Mike31
mais ton dir("*.jpg") est une très mauvaise solution dans ton cas:Boisgontier utilise ce thread pour parcourir un dossier à la recherche de ;jpg
soit tu mets les .jpg dans le même dossier; soit tu mets dans un autre dossier et ouvres par getfileopen pour choisir ta photo comme te l'as indiqué Mike31 => la photo est effectivement dans le meme dossier (et il n'y en a qu'une seule dont le nom peut varier c'est pourquoi la solution dir("*.jpg") me semblait la bonne)
J'ai quelque peu corrigé mon code avec le tien, mais comme l'unique image JPEG de mon dossier peut changer de nom, j'aimais bien le "/*.jpg".
Connais-tu un autre moyen d'aller chercher l'unique jpg de mon repertoire?
Merci
Anna