EXCEL 2007 - INSERER UNE IMAGE

Résolu
Anna -  
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
A voir également:

33 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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)
0
Anna
 
Bonjour Michel,

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!
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314 > Anna
 
forcément, tu as ouvert le fichier zip et tenter le coup: comme tu es dans le répertoire "temp" ca ne marche pas!
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
0
Anna > michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention  
 
Ok effectivement c'est mieux de telechager le tout dans un dossier. ca marche.

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
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
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)
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
excusez moi d'avoir dérangé....
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
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)
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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...

0

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

Posez votre question
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
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)
0
Anna
 
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?????
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
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)
0
Anna
 
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
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
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)
0
Anna
 
Merci mike pour ce code

Anna
0
Anna
 
Merci mike, je vais essayer dans la journée. Je te tiens au courant...

Merci encore

Anna
0
Anna
 
merci a mike et michel.

j'ai resolu mon souci...

Anna
0
AstouWAR
 
Je cherche à visualiser à l'impression les commentaires insérés sur feuille de calcul Excel, comment m'y prendre
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
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.
0

Discussions similaires