Bonjour Jean-Luc,
Cette procédure a été testée à partir de la version excel 2002.
j'ai toujours un problème au niveau
Set Image = Worksheets(Feuille).Pictures.Insert(NomImage)
**** J'ai retesté la procédure et je ne vois aucun problème dans cette ligne de code... cela suppose cependant que
l'appel à cette procédure se fait dans les règles de l'art... c'est-à-dire que tu renseignes chacun des arguments de la
procédure adéquatement. Cependant, comme la variable n'est pas déclarée, il se peut que tu aies un message à cet égard,
si dans le module où la procédure a été inséré il est inscrit dans le haut de ce dernier : Option Explicit ... auquel
cas, tu devras ajouter ces lignes à la procédure "InsérerImage"
Dim Rg As Range
Dim Image As Object
Dim Largeur As Double
Dim Hauteur As Double
Dans ma boucle pour affichage, le fait de vouloir passer
à une variable chemin$
**** Voici le test effectué... et le résultat fut positif :
'Déclaration des variables ...
Dim Chemin As String
Dim Fichier As String
A )'Renseigner les variables ... attention au nom de la feuille
'qui doit être adapté selon celle de ton application.
B ) Tu dois t'assurer que les cellules ne sont pas vides pour
cela tu peux ajouter un test ... supplémentaire ....!
With Worksheets("Feuil1")
Chemin = .Range("A1")
Fichier = .Range("A2")
End With
Assure-toi que le chemin et le nom du fichier incluant son extension sont bien présents.
Personnellement, je n'ai pas rencontré aucun problème....
Salutations!
"Jean-Luc" <Casadavant.J-***@wanadoo.fr> a écrit dans le message de news:10e701c47b92$692683f0$***@phx.gbl...
A MichDenis du Microsoft NewsGroup
Bonjour,
Et surtout Merci beaucoup pour ton souci de te pencher
sur mon problème, de plus près !!! Merci pour le code..
Mais j'ai toujours un problème au niveau de Set Image =
Worksheets(Feuille).Pictures.Insert(NomImage) avec la
même erreur 1004
ERREUR D'EXECUTION 1004
Impossible de lire la propriétés INSERT de la classe
PICTURES.
Quand j'insère une adresse de la forme
("C:\LACHORALE\2004-2005\Trombino\DURAND.jpg") , ça
affiche bien, toujours la même photo, certes.
Dans ma boucle pour affichage, le fait de vouloir passer
à une variable chemin$ le contenue d'une cellule ( qui
peut être ("C:\LACHORALE\2004-2005\Trombino\DUPOND.jpg")
ou ("C:\LACHORALE\2004-2005\Trombino\DUPONT.jpg"), ou
("C:\LACHORALE\2004-2005\Trombino\DURAND.jpg") bloque.
That's the problem...
Pourtant le débogueur indique bien que la variable
NomImage de ton code est bien en l'occurence
("C:\LACHORALE\2004-2005\Trombino\DUPOND.jpg") pour le
1er choriste.
J'en suis là.
Voici d'autres inform qui peut être aideront au
diagnostic.
Mon projet TROMBINO c'est une page EXCEL avec une ligne
par choriste où les informations NOM, PRENOM, ADRESSE,
etc, sont consignées.
Apartir de cette page basique, je crée une page pour le
TROMBINO proprement dit. Qd je clique sur le
bouton "TROMBI" une macro se réalise qui positionne
le "quadrillage", définit donc par avance l'emplacement
des photos et va me permettre d'obtenir un document
imprimé.
C'est ds cette page que j'ai NOM, PRENOM, GAUCHE(NOM;8),
GAUCHE(PRENOM;3), GAUCHE(NOM;8) & GAUCHE(PRENOM;3)&".jpg"
qui me définit le nom de chaque fichier jpg .....etc pour
en arriver à chemin$
Dans le code du module correspondant, qd je vais pêcher
mon chemin$, je fais chemin$=cellule(...,...).value,
cette cellule est elle-même le résultat d'une
concaténation du contenu de 2 cellules où j'applique des
formules pour prendre les 8 premières lettres du nom et
les 3 premières lettres du prénom, comme dit plus haut.
Toutes mes cell sont formatées au format texte.
Salutations et encore merci pour l'aide.
Jean-Luc
-----Message d'origine-----
Bonjour,
Il ne te reste plus qu'à insérer la ligne de code de la
procédure "TestMonImage" dans une boucle dont les
paramètres
"Feuil2" = Nom De la feuille où l'image doit être
insérer
Range("b5:D6") = Espace occupé par l'image dans la
feuille
"C:\Winnt\Plume.bmp" = Chemin et nom du fichier de
l'image.
'---------------------------
Sub TestMonImage()
InsérerImage "Feuil2", Range
("b5:D6"), "C:\Winnt\Plume.bmp"
End Sub
'---------------------------
Sub InsérerImage(Feuille As String, RgImage As Range,
NomImage As String)
Dim Rg As Range
Set Rg = Worksheets(Feuille).Range(RgImage.Address)
With Rg
Largeur = .Offset(, 1)(, .Columns.Count).Left -
.Left
Hauteur = .Offset(.Rows.Count).Top - .Item(1).Top
Set Image = Worksheets(Feuille).Pictures.Insert
(NomImage)
End With
With Image
.Left = Rg.Left
.Top = Rg.Top
'Largeur de l'image
Image.Width = Largeur
'Hauteur de l'image
Image.Height = Hauteur
'Est-ce que l'image doit se déplacer avec les
cellules
'voici les 3 constantes possibles
.Placement = xlFreeFloating 'or xlmove or
xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing
End Sub
'---------------------------
Salutations!
A Microsoft Newsgroup EXCEL
Bonjour,
J'ai tenté de réaliser un trombinoscope pour ma chorale
sous word 97.
Un gars du newsgroup a tenté de m'aider...
Je ne dois pas être très doué. Je reste avec le même
problème d'images !!!
Alors je retente mon affaire sous EXCEL 97.
Mon problème réside dans le fait d'introduire la bouille
de chaque choriste dans les 4 colonnes A, C, E et G.
et les lignes 4,7,10 etc
FOR RowIndex = 4 to....step 3
For ColIndex = 1 to 7 step 2
chemin = Cells(106 +
nb, "G") '.............................................qu
i
me fournit un chemin du genre "C:\LACHORALE\2004-2005
\Trombino\DURAND.jpg"
'....................................................
.
.........................................................
..
...........chaque fois différent
Range(Cells(RowIndex, ColIndex), Cells(RowIndex,
ColIndex)).Select
ActiveSheet.Pictures.Insert(chemin).Select
next ColIndex
next RowIndex
Ca marche si au lieu d'avoir
ActiveSheet.Pictures.Insert(chemin).Select j'ai une
formulation du genre ActiveSheet.Pictures.Insert
("C:\LACHORALE\2004-2005\Trombino\DURAND.jpg").Select
Cette dernière formulation me permet de remplir toutes
les cases avec la même photo.
Merci à ceux/ celles qui pourront me donner une piste.
A plus.
Jean-Luc
.