OVH Cloud OVH Cloud

fixer une image

18 réponses
Avatar
René MATHIEU
Bonjour,
Je voudrai fixer (ou encrer) des images dans les cellules d'une colonne, de
façon à pouvoir trier la feuille de calcul, les images suivant les cellules
qui donnent leurs descriptions.
ex. en A1 le numéro d'image, en B1 l'image et en C1 la description de
l'image.
Dans les propriétés de l'image, j'ai mis déplacer et dimensionner avec les
cellules mais cela ne fonctionne pas toujours.
J'utilise Windows xp et Excel 97.
Quelqu'un aurait-il une solution?
Merci d'avance.

10 réponses

1 2
Avatar
michdenis
Bonjour René,

Voici une procédure qui insère une image d'un répertoire du disque dur dans la cellule de la feuille de ton choix

Le principe : les bornes de l'image doit être totalement à l'intérieur de la cellule
Un clic droit sur l'image / menu contextuel / Format de l'objet /
onglet propriété / Déplacer dans redimensionner avec les cellules.

'----------------------
Sub TestMonImage()

InsérerImage "Feuil2", Range("b5"), "C:windowsPlume.bmp"

End Sub
'----------------------

Sub InsérerImage(Feuille As String, Rg As Range, NomImage As String)

With Worksheets(Feuille)
Largeur = Rg.Offset(, 1)(, Rg.Columns.Count).Left - Rg.Left
Hauteur = Rg.Offset(Rg.Rows.Count).Top - Rg(1).Top
Set Image = .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 = xlMove 'orxlFreeFloating or xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing

End Sub
'----------------------


Salutations!





"René MATHIEU" a écrit dans le message de news: 4387686d$0$1040$
Bonjour,
Je voudrai fixer (ou encrer) des images dans les cellules d'une colonne, de
façon à pouvoir trier la feuille de calcul, les images suivant les cellules
qui donnent leurs descriptions.
ex. en A1 le numéro d'image, en B1 l'image et en C1 la description de
l'image.
Dans les propriétés de l'image, j'ai mis déplacer et dimensionner avec les
cellules mais cela ne fonctionne pas toujours.
J'utilise Windows xp et Excel 97.
Quelqu'un aurait-il une solution?
Merci d'avance.
Avatar
René MATHIEU
merci à michdenis pour sa réponse, je vais essayer de l'implanter mais je
cherche plutôt une solution Excel sans Visual Basic car je ne le connais
pas.
En fait j'ai +/- 300 photos a insérer dans une feuille.
un tout grand merci.

"michdenis" a écrit dans le message de news:
%23%
Bonjour René,

Voici une procédure qui insère une image d'un répertoire du disque dur
dans la cellule de la feuille de ton choix

Le principe : les bornes de l'image doit être totalement à l'intérieur de
la cellule
Un clic droit sur l'image / menu contextuel / Format de
l'objet /
onglet propriété / Déplacer dans redimensionner avec
les cellules.

'----------------------
Sub TestMonImage()

InsérerImage "Feuil2", Range("b5"), "C:windowsPlume.bmp"

End Sub
'----------------------

Sub InsérerImage(Feuille As String, Rg As Range, NomImage As String)

With Worksheets(Feuille)
Largeur = Rg.Offset(, 1)(, Rg.Columns.Count).Left - Rg.Left
Hauteur = Rg.Offset(Rg.Rows.Count).Top - Rg(1).Top
Set Image = .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 = xlMove 'orxlFreeFloating or xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing

End Sub
'----------------------


Salutations!





"René MATHIEU" a écrit dans le message de news:
4387686d$0$1040$
Bonjour,
Je voudrai fixer (ou encrer) des images dans les cellules d'une colonne,
de
façon à pouvoir trier la feuille de calcul, les images suivant les
cellules
qui donnent leurs descriptions.
ex. en A1 le numéro d'image, en B1 l'image et en C1 la description de
l'image.
Dans les propriétés de l'image, j'ai mis déplacer et dimensionner avec les
cellules mais cela ne fonctionne pas toujours.
J'utilise Windows xp et Excel 97.
Quelqu'un aurait-il une solution?
Merci d'avance.





Avatar
michdenis
Bonjou René,

Est-ce que tes images à implanter sont dans le même répertoire?


Est-ce qu'il y a une façon de déterminer quelle image (son nom de fichier) correspond à une cellule donnée ?

Si oui, il est possible de le faire par une procédure ... beaucoup plus rapidement
que par manipulation dans la feuille de calcul !


Salutations!


"René MATHIEU" a écrit dans le message de news: 4387724b$0$12009$
merci à michdenis pour sa réponse, je vais essayer de l'implanter mais je
cherche plutôt une solution Excel sans Visual Basic car je ne le connais
pas.
En fait j'ai +/- 300 photos a insérer dans une feuille.
un tout grand merci.

"michdenis" a écrit dans le message de news:
%23%
Bonjour René,

Voici une procédure qui insère une image d'un répertoire du disque dur
dans la cellule de la feuille de ton choix

Le principe : les bornes de l'image doit être totalement à l'intérieur de
la cellule
Un clic droit sur l'image / menu contextuel / Format de
l'objet /
onglet propriété / Déplacer dans redimensionner avec
les cellules.

'----------------------
Sub TestMonImage()

InsérerImage "Feuil2", Range("b5"), "C:windowsPlume.bmp"

End Sub
'----------------------

Sub InsérerImage(Feuille As String, Rg As Range, NomImage As String)

With Worksheets(Feuille)
Largeur = Rg.Offset(, 1)(, Rg.Columns.Count).Left - Rg.Left
Hauteur = Rg.Offset(Rg.Rows.Count).Top - Rg(1).Top
Set Image = .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 = xlMove 'orxlFreeFloating or xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing

End Sub
'----------------------


Salutations!





"René MATHIEU" a écrit dans le message de news:
4387686d$0$1040$
Bonjour,
Je voudrai fixer (ou encrer) des images dans les cellules d'une colonne,
de
façon à pouvoir trier la feuille de calcul, les images suivant les
cellules
qui donnent leurs descriptions.
ex. en A1 le numéro d'image, en B1 l'image et en C1 la description de
l'image.
Dans les propriétés de l'image, j'ai mis déplacer et dimensionner avec les
cellules mais cela ne fonctionne pas toujours.
J'utilise Windows xp et Excel 97.
Quelqu'un aurait-il une solution?
Merci d'avance.





Avatar
René MATHIEU
merci pour ta réponse,
oui, les photos sont dans un répertoire, se sont des yyy.jpg et chaque photo
correspond a un nom dans une feuille Excel.
Le gros problème, c'est qu'une fois dans leur cellule, elles y restent
accrochées.
Ce qui me trouble, c'est que parfois elles s'encrent bien, parfois elles
décrochent.

"michdenis" a écrit dans le message de news:

Bonjou René,

Est-ce que tes images à implanter sont dans le même répertoire?


Est-ce qu'il y a une façon de déterminer quelle image (son nom de fichier)
correspond à une cellule donnée ?

Si oui, il est possible de le faire par une procédure ... beaucoup plus
rapidement
que par manipulation dans la feuille de calcul !


Salutations!


"René MATHIEU" a écrit dans le message de news:
4387724b$0$12009$
merci à michdenis pour sa réponse, je vais essayer de l'implanter mais je
cherche plutôt une solution Excel sans Visual Basic car je ne le connais
pas.
En fait j'ai +/- 300 photos a insérer dans une feuille.
un tout grand merci.

"michdenis" a écrit dans le message de news:
%23%
Bonjour René,

Voici une procédure qui insère une image d'un répertoire du disque dur
dans la cellule de la feuille de ton choix

Le principe : les bornes de l'image doit être totalement à l'intérieur de
la cellule
Un clic droit sur l'image / menu contextuel / Format de
l'objet /
onglet propriété / Déplacer dans redimensionner avec
les cellules.

'----------------------
Sub TestMonImage()

InsérerImage "Feuil2", Range("b5"), "C:windowsPlume.bmp"

End Sub
'----------------------

Sub InsérerImage(Feuille As String, Rg As Range, NomImage As String)

With Worksheets(Feuille)
Largeur = Rg.Offset(, 1)(, Rg.Columns.Count).Left - Rg.Left
Hauteur = Rg.Offset(Rg.Rows.Count).Top - Rg(1).Top
Set Image = .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 = xlMove 'orxlFreeFloating or xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing

End Sub
'----------------------


Salutations!





"René MATHIEU" a écrit dans le message de news:
4387686d$0$1040$
Bonjour,
Je voudrai fixer (ou encrer) des images dans les cellules d'une colonne,
de
façon à pouvoir trier la feuille de calcul, les images suivant les
cellules
qui donnent leurs descriptions.
ex. en A1 le numéro d'image, en B1 l'image et en C1 la description de
l'image.
Dans les propriétés de l'image, j'ai mis déplacer et dimensionner avec
les
cellules mais cela ne fonctionne pas toujours.
J'utilise Windows xp et Excel 97.
Quelqu'un aurait-il une solution?
Merci d'avance.










Avatar
michdenis
Bonjour René,


La procédure pourrait ressembler à ceci :

A ) Tu dois renseigner la variable RepImage adéquatement.

B ) Comme tu veux pouvoir trier la plage de données incluant
les images, tu dois t'assurer que toutes les lignes de la plage
sont de la même hauteur avant de débuter... sinon ce ne sera
pas très beau après le tri. ;-) Tu aurais alors besoin d'une autre
procédure pour replacer les images.

C ) Les bornes de l'image doivent être totalement à l'intérieur de la
cellule. Dans la procédure :"InsérerImage", j'ai enlevé .01 à la
grandeur de l'image pour cette raison....à tester sa véritable
nécessité !

'----------------------
Sub TestMonImage()

Dim Img As String
Dim RepImage As String

'Répertoire où sont les images
'Ne pas oublier le symbole "backlash"
RepImage = "c:windows" 'à déterminer

On Error Resume Next
For Each n In Application.Names
Set Rg = Range(n.Name)
If Err <> 0 Then
Err = 0
Else
If LCase(Right(n.Name, 4)) <> ".jpg" Then
Img = RepImage & n.Name & ".jpg"
Else
Img = RepImage & n.Name
End If
If Dir(Img) <> "" Then
InsérerImage Rg.Parent.Name, Rg, Img
Else
MsgBox "Ce fichier image n'existe pas : " & _
vbCrLf & Img
End If
End If
Next

End Sub
'----------------------

Sub InsérerImage(Feuille As String, ByVal Rg As Range, NomImage As String)

With Worksheets(Feuille)
Largeur = Rg.Offset(, 1)(, Rg.Columns.Count).Left - Rg.Left
Hauteur = Rg.Offset(Rg.Rows.Count).Top - Rg(1).Top
Set Image = .Pictures.Insert(NomImage)
End With
With Image
.Left = Rg.Left + 0.01
.Top = Rg.Top + 0.01
'Largeur de l'image
Image.Width = Largeur - 0.01
'Hauteur de l'image
Image.Height = Hauteur - 0.01
'Est-ce que l'image doit se déplacer avec les cellules
'voici les 3 constantes possibles
.Placement = xlMove 'orxlFreeFloating or xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing

End Sub
'---------------------------------------


Salutations!






"René MATHIEU" a écrit dans le message de news: 43881e65$0$9452$
merci pour ta réponse,
oui, les photos sont dans un répertoire, se sont des yyy.jpg et chaque photo
correspond a un nom dans une feuille Excel.
Le gros problème, c'est qu'une fois dans leur cellule, elles y restent
accrochées.
Ce qui me trouble, c'est que parfois elles s'encrent bien, parfois elles
décrochent.

"michdenis" a écrit dans le message de news:

Bonjou René,

Est-ce que tes images à implanter sont dans le même répertoire?


Est-ce qu'il y a une façon de déterminer quelle image (son nom de fichier)
correspond à une cellule donnée ?

Si oui, il est possible de le faire par une procédure ... beaucoup plus
rapidement
que par manipulation dans la feuille de calcul !


Salutations!


"René MATHIEU" a écrit dans le message de news:
4387724b$0$12009$
merci à michdenis pour sa réponse, je vais essayer de l'implanter mais je
cherche plutôt une solution Excel sans Visual Basic car je ne le connais
pas.
En fait j'ai +/- 300 photos a insérer dans une feuille.
un tout grand merci.

"michdenis" a écrit dans le message de news:
%23%
Bonjour René,

Voici une procédure qui insère une image d'un répertoire du disque dur
dans la cellule de la feuille de ton choix

Le principe : les bornes de l'image doit être totalement à l'intérieur de
la cellule
Un clic droit sur l'image / menu contextuel / Format de
l'objet /
onglet propriété / Déplacer dans redimensionner avec
les cellules.

'----------------------
Sub TestMonImage()

InsérerImage "Feuil2", Range("b5"), "C:windowsPlume.bmp"

End Sub
'----------------------

Sub InsérerImage(Feuille As String, Rg As Range, NomImage As String)

With Worksheets(Feuille)
Largeur = Rg.Offset(, 1)(, Rg.Columns.Count).Left - Rg.Left
Hauteur = Rg.Offset(Rg.Rows.Count).Top - Rg(1).Top
Set Image = .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 = xlMove 'orxlFreeFloating or xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing

End Sub
'----------------------


Salutations!





"René MATHIEU" a écrit dans le message de news:
4387686d$0$1040$
Bonjour,
Je voudrai fixer (ou encrer) des images dans les cellules d'une colonne,
de
façon à pouvoir trier la feuille de calcul, les images suivant les
cellules
qui donnent leurs descriptions.
ex. en A1 le numéro d'image, en B1 l'image et en C1 la description de
l'image.
Dans les propriétés de l'image, j'ai mis déplacer et dimensionner avec
les
cellules mais cela ne fonctionne pas toujours.
J'utilise Windows xp et Excel 97.
Quelqu'un aurait-il une solution?
Merci d'avance.










Avatar
René MATHIEU
Bonsoir michdenis
Merci pour ta réponse, je vais essayer de l'implémenter.
Je vais faire un fichier bidon pour les tests.
Je suis absent deux trois jours, je te tiendrai au courant.


"michdenis" a écrit dans le message de news:
%
Bonjour René,


La procédure pourrait ressembler à ceci :

A ) Tu dois renseigner la variable RepImage adéquatement.

B ) Comme tu veux pouvoir trier la plage de données incluant
les images, tu dois t'assurer que toutes les lignes de la plage
sont de la même hauteur avant de débuter... sinon ce ne sera
pas très beau après le tri. ;-) Tu aurais alors besoin d'une autre
procédure pour replacer les images.

C ) Les bornes de l'image doivent être totalement à l'intérieur de la
cellule. Dans la procédure :"InsérerImage", j'ai enlevé .01 à la
grandeur de l'image pour cette raison....à tester sa véritable
nécessité !

'----------------------
Sub TestMonImage()

Dim Img As String
Dim RepImage As String

'Répertoire où sont les images
'Ne pas oublier le symbole "backlash"
RepImage = "c:windows" 'à déterminer

On Error Resume Next
For Each n In Application.Names
Set Rg = Range(n.Name)
If Err <> 0 Then
Err = 0
Else
If LCase(Right(n.Name, 4)) <> ".jpg" Then
Img = RepImage & n.Name & ".jpg"
Else
Img = RepImage & n.Name
End If
If Dir(Img) <> "" Then
InsérerImage Rg.Parent.Name, Rg, Img
Else
MsgBox "Ce fichier image n'existe pas : " & _
vbCrLf & Img
End If
End If
Next

End Sub
'----------------------

Sub InsérerImage(Feuille As String, ByVal Rg As Range, NomImage As String)

With Worksheets(Feuille)
Largeur = Rg.Offset(, 1)(, Rg.Columns.Count).Left - Rg.Left
Hauteur = Rg.Offset(Rg.Rows.Count).Top - Rg(1).Top
Set Image = .Pictures.Insert(NomImage)
End With
With Image
.Left = Rg.Left + 0.01
.Top = Rg.Top + 0.01
'Largeur de l'image
Image.Width = Largeur - 0.01
'Hauteur de l'image
Image.Height = Hauteur - 0.01
'Est-ce que l'image doit se déplacer avec les cellules
'voici les 3 constantes possibles
.Placement = xlMove 'orxlFreeFloating or xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing

End Sub
'---------------------------------------


Salutations!






"René MATHIEU" a écrit dans le message de news:
43881e65$0$9452$
merci pour ta réponse,
oui, les photos sont dans un répertoire, se sont des yyy.jpg et chaque
photo
correspond a un nom dans une feuille Excel.
Le gros problème, c'est qu'une fois dans leur cellule, elles y restent
accrochées.
Ce qui me trouble, c'est que parfois elles s'encrent bien, parfois elles
décrochent.

"michdenis" a écrit dans le message de news:

Bonjou René,

Est-ce que tes images à implanter sont dans le même répertoire?


Est-ce qu'il y a une façon de déterminer quelle image (son nom de
fichier)
correspond à une cellule donnée ?

Si oui, il est possible de le faire par une procédure ... beaucoup plus
rapidement
que par manipulation dans la feuille de calcul !


Salutations!


"René MATHIEU" a écrit dans le message de news:
4387724b$0$12009$
merci à michdenis pour sa réponse, je vais essayer de l'implanter mais je
cherche plutôt une solution Excel sans Visual Basic car je ne le connais
pas.
En fait j'ai +/- 300 photos a insérer dans une feuille.
un tout grand merci.

"michdenis" a écrit dans le message de news:
%23%
Bonjour René,

Voici une procédure qui insère une image d'un répertoire du disque dur
dans la cellule de la feuille de ton choix

Le principe : les bornes de l'image doit être totalement à l'intérieur
de
la cellule
Un clic droit sur l'image / menu contextuel / Format
de
l'objet /
onglet propriété / Déplacer dans redimensionner avec
les cellules.

'----------------------
Sub TestMonImage()

InsérerImage "Feuil2", Range("b5"), "C:windowsPlume.bmp"

End Sub
'----------------------

Sub InsérerImage(Feuille As String, Rg As Range, NomImage As String)

With Worksheets(Feuille)
Largeur = Rg.Offset(, 1)(, Rg.Columns.Count).Left - Rg.Left
Hauteur = Rg.Offset(Rg.Rows.Count).Top - Rg(1).Top
Set Image = .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 = xlMove 'orxlFreeFloating or xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing

End Sub
'----------------------


Salutations!





"René MATHIEU" a écrit dans le message de news:
4387686d$0$1040$
Bonjour,
Je voudrai fixer (ou encrer) des images dans les cellules d'une colonne,
de
façon à pouvoir trier la feuille de calcul, les images suivant les
cellules
qui donnent leurs descriptions.
ex. en A1 le numéro d'image, en B1 l'image et en C1 la description de
l'image.
Dans les propriétés de l'image, j'ai mis déplacer et dimensionner avec
les
cellules mais cela ne fonctionne pas toujours.
J'utilise Windows xp et Excel 97.
Quelqu'un aurait-il une solution?
Merci d'avance.















Avatar
René MATHIEU
Bonsoir michdenis,
j'ai essayer de mettre le prog. en application, j'obtient "erreur de
compilation" car
la variable "n" n'est pas définie.
Si j'ajoute Dim n as object ou variant cela continue mais alors
j'ai le meme message pour Rg.
si j'ajoute Dim Rg as object le programme saute de la ligne For Each n in
Application.Names
à End Sub.
J'ai bien mis l'adresse complete du fichier ( "c:Documents and
Settingrenemes documentsnomdefichier" )
que dois-je faire?

merci d'avance.


La procédure pourrait ressembler à ceci :

A ) Tu dois renseigner la variable RepImage adéquatement.

B ) Comme tu veux pouvoir trier la plage de données incluant
les images, tu dois t'assurer que toutes les lignes de la plage
sont de la même hauteur avant de débuter... sinon ce ne sera
pas très beau après le tri. ;-) Tu aurais alors besoin d'une autre
procédure pour replacer les images.

C ) Les bornes de l'image doivent être totalement à l'intérieur de la
cellule. Dans la procédure :"InsérerImage", j'ai enlevé .01 à la
grandeur de l'image pour cette raison....à tester sa véritable
nécessité !

'----------------------
Sub TestMonImage()

Dim Img As String
Dim RepImage As String

'Répertoire où sont les images
'Ne pas oublier le symbole "backlash"
RepImage = "c:windows" 'à déterminer

On Error Resume Next
For Each n In Application.Names
Set Rg = Range(n.Name)
If Err <> 0 Then
Err = 0
Else
If LCase(Right(n.Name, 4)) <> ".jpg" Then
Img = RepImage & n.Name & ".jpg"
Else
Img = RepImage & n.Name
End If
If Dir(Img) <> "" Then
InsérerImage Rg.Parent.Name, Rg, Img
Else
MsgBox "Ce fichier image n'existe pas : " & _
vbCrLf & Img
End If
End If
Next

End Sub
'----------------------

Sub InsérerImage(Feuille As String, ByVal Rg As Range, NomImage As String)

With Worksheets(Feuille)
Largeur = Rg.Offset(, 1)(, Rg.Columns.Count).Left - Rg.Left
Hauteur = Rg.Offset(Rg.Rows.Count).Top - Rg(1).Top
Set Image = .Pictures.Insert(NomImage)
End With
With Image
.Left = Rg.Left + 0.01
.Top = Rg.Top + 0.01
'Largeur de l'image
Image.Width = Largeur - 0.01
'Hauteur de l'image
Image.Height = Hauteur - 0.01
'Est-ce que l'image doit se déplacer avec les cellules
'voici les 3 constantes possibles
.Placement = xlMove 'orxlFreeFloating or xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing

End Sub
'---------------------------------------




Avatar
michdenis
Bonjour René,

Ceci devrait aller, j'ai déclaré chacune des variables :


'---------------------------------------
Sub TestMonImage()

Dim Img As String
Dim RepImage As String
Dim N As Name, Rg As Range

'Répertoire où sont les images
'Ne pas oublier le symbole "backlash"
RepImage = "c:windows" 'à déterminer

On Error Resume Next
For Each N In Application.Names
Set Rg = Range(N.Name)
If Err <> 0 Then
Err = 0
Else
If LCase(Right(N.Name, 4)) <> ".jpg" Then
Img = RepImage & N.Name & ".jpg"
Else
Img = RepImage & N.Name
End If
If Dir(Img) <> "" Then
InsérerImage Rg.Parent.Name, Rg, Img
Else
MsgBox "Ce fichier image n'existe pas : " & _
vbCrLf & Img
End If
End If
Next

End Sub
'----------------------

Sub InsérerImage(Feuille As String, _
ByVal Rg As Range, NomImage As String)

Dim Largeur As Double, Hauteur As Double
Dim Image As Object

With Worksheets(Feuille)
Largeur = Rg.Offset(, 1)(, Rg.Columns.Count).Left - Rg.Left
Hauteur = Rg.Offset(Rg.Rows.Count).Top - Rg(1).Top
Set Image = .Pictures.Insert(NomImage)
End With
With Image
.Left = Rg.Left + 0.01
.Top = Rg.Top + 0.01
'Largeur de l'image
.Width = Largeur - 0.01
'Hauteur de l'image
.Height = Hauteur - 0.01
'Est-ce que l'image doit se déplacer avec les cellules
'voici les 3 constantes possibles
.Placement = xlMove 'orxlFreeFloating or xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing

End Sub
'---------------------------------------


Salutations!



"René MATHIEU" a écrit dans le message de news: 43889cd9$0$25529$
Bonsoir michdenis,
j'ai essayer de mettre le prog. en application, j'obtient "erreur de
compilation" car
la variable "n" n'est pas définie.
Si j'ajoute Dim n as object ou variant cela continue mais alors
j'ai le meme message pour Rg.
si j'ajoute Dim Rg as object le programme saute de la ligne For Each n in
Application.Names
à End Sub.
J'ai bien mis l'adresse complete du fichier ( "c:Documents and
Settingrenemes documentsnomdefichier" )
que dois-je faire?

merci d'avance.


La procédure pourrait ressembler à ceci :

A ) Tu dois renseigner la variable RepImage adéquatement.

B ) Comme tu veux pouvoir trier la plage de données incluant
les images, tu dois t'assurer que toutes les lignes de la plage
sont de la même hauteur avant de débuter... sinon ce ne sera
pas très beau après le tri. ;-) Tu aurais alors besoin d'une autre
procédure pour replacer les images.

C ) Les bornes de l'image doivent être totalement à l'intérieur de la
cellule. Dans la procédure :"InsérerImage", j'ai enlevé .01 à la
grandeur de l'image pour cette raison....à tester sa véritable
nécessité !

'----------------------
Sub TestMonImage()

Dim Img As String
Dim RepImage As String

'Répertoire où sont les images
'Ne pas oublier le symbole "backlash"
RepImage = "c:windows" 'à déterminer

On Error Resume Next
For Each n In Application.Names
Set Rg = Range(n.Name)
If Err <> 0 Then
Err = 0
Else
If LCase(Right(n.Name, 4)) <> ".jpg" Then
Img = RepImage & n.Name & ".jpg"
Else
Img = RepImage & n.Name
End If
If Dir(Img) <> "" Then
InsérerImage Rg.Parent.Name, Rg, Img
Else
MsgBox "Ce fichier image n'existe pas : " & _
vbCrLf & Img
End If
End If
Next

End Sub
'----------------------

Sub InsérerImage(Feuille As String, ByVal Rg As Range, NomImage As String)

With Worksheets(Feuille)
Largeur = Rg.Offset(, 1)(, Rg.Columns.Count).Left - Rg.Left
Hauteur = Rg.Offset(Rg.Rows.Count).Top - Rg(1).Top
Set Image = .Pictures.Insert(NomImage)
End With
With Image
.Left = Rg.Left + 0.01
.Top = Rg.Top + 0.01
'Largeur de l'image
Image.Width = Largeur - 0.01
'Hauteur de l'image
Image.Height = Hauteur - 0.01
'Est-ce que l'image doit se déplacer avec les cellules
'voici les 3 constantes possibles
.Placement = xlMove 'orxlFreeFloating or xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing

End Sub
'---------------------------------------




Avatar
René MATHIEU
voilà, j'ai recopié les déclarations dans les deux tableaux, mais en pas a
pas on saute de la ligne
For Each n In Application.Names à End Sub sans message d'erreur.
merci de passer du temps avec moi.
René
Ceci devrait aller, j'ai déclaré chacune des variables :


'---------------------------------------
Sub TestMonImage()

Dim Img As String
Dim RepImage As String
Dim N As Name, Rg As Range

'Répertoire où sont les images
'Ne pas oublier le symbole "backlash"
RepImage = "c:windows" 'à déterminer

On Error Resume Next
For Each N In Application.Names
Set Rg = Range(N.Name)
If Err <> 0 Then
Err = 0
Else
If LCase(Right(N.Name, 4)) <> ".jpg" Then
Img = RepImage & N.Name & ".jpg"
Else
Img = RepImage & N.Name
End If
If Dir(Img) <> "" Then
InsérerImage Rg.Parent.Name, Rg, Img
Else
MsgBox "Ce fichier image n'existe pas : " & _
vbCrLf & Img
End If
End If
Next

End Sub
'----------------------

Sub InsérerImage(Feuille As String, _
ByVal Rg As Range, NomImage As String)

Dim Largeur As Double, Hauteur As Double
Dim Image As Object

With Worksheets(Feuille)
Largeur = Rg.Offset(, 1)(, Rg.Columns.Count).Left - Rg.Left
Hauteur = Rg.Offset(Rg.Rows.Count).Top - Rg(1).Top
Set Image = .Pictures.Insert(NomImage)
End With
With Image
.Left = Rg.Left + 0.01
.Top = Rg.Top + 0.01
'Largeur de l'image
.Width = Largeur - 0.01
'Hauteur de l'image
.Height = Hauteur - 0.01
'Est-ce que l'image doit se déplacer avec les cellules
'voici les 3 constantes possibles
.Placement = xlMove 'orxlFreeFloating or xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing

End Sub
'---------------------------------------


Salutations!



"René MATHIEU" a écrit dans le message de news:
43889cd9$0$25529$
Bonsoir michdenis,
j'ai essayer de mettre le prog. en application, j'obtient "erreur de
compilation" car
la variable "n" n'est pas définie.
Si j'ajoute Dim n as object ou variant cela continue mais alors
j'ai le meme message pour Rg.
si j'ajoute Dim Rg as object le programme saute de la ligne For Each n in
Application.Names
à End Sub.
J'ai bien mis l'adresse complete du fichier ( "c:Documents and
Settingrenemes documentsnomdefichier" )
que dois-je faire?

merci d'avance.


La procédure pourrait ressembler à ceci :

A ) Tu dois renseigner la variable RepImage adéquatement.

B ) Comme tu veux pouvoir trier la plage de données incluant
les images, tu dois t'assurer que toutes les lignes de la plage
sont de la même hauteur avant de débuter... sinon ce ne sera
pas très beau après le tri. ;-) Tu aurais alors besoin d'une autre
procédure pour replacer les images.

C ) Les bornes de l'image doivent être totalement à l'intérieur de la
cellule. Dans la procédure :"InsérerImage", j'ai enlevé .01 à la
grandeur de l'image pour cette raison....à tester sa véritable
nécessité !

'----------------------
Sub TestMonImage()

Dim Img As String
Dim RepImage As String

'Répertoire où sont les images
'Ne pas oublier le symbole "backlash"
RepImage = "c:windows" 'à déterminer

On Error Resume Next
For Each n In Application.Names
Set Rg = Range(n.Name)
If Err <> 0 Then
Err = 0
Else
If LCase(Right(n.Name, 4)) <> ".jpg" Then
Img = RepImage & n.Name & ".jpg"
Else
Img = RepImage & n.Name
End If
If Dir(Img) <> "" Then
InsérerImage Rg.Parent.Name, Rg, Img
Else
MsgBox "Ce fichier image n'existe pas : " & _
vbCrLf & Img
End If
End If
Next

End Sub
'----------------------

Sub InsérerImage(Feuille As String, ByVal Rg As Range, NomImage As
String)

With Worksheets(Feuille)
Largeur = Rg.Offset(, 1)(, Rg.Columns.Count).Left - Rg.Left
Hauteur = Rg.Offset(Rg.Rows.Count).Top - Rg(1).Top
Set Image = .Pictures.Insert(NomImage)
End With
With Image
.Left = Rg.Left + 0.01
.Top = Rg.Top + 0.01
'Largeur de l'image
Image.Width = Largeur - 0.01
'Hauteur de l'image
Image.Height = Hauteur - 0.01
'Est-ce que l'image doit se déplacer avec les cellules
'voici les 3 constantes possibles
.Placement = xlMove 'orxlFreeFloating or xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing

End Sub
'---------------------------------------









Avatar
michdenis
Bonjour Mathieu,

As-tu au moins des "NOMS" de défini (barre de menu / insertion / nom / définir) dans ledit classeur.

Si tu testais cette ligne de code, combien de noms te renverrait-elle ?

MsgBox Application.Names.Count


Salutations!





"René MATHIEU" a écrit dans le message de news: 4388b6d1$0$13934$
voilà, j'ai recopié les déclarations dans les deux tableaux, mais en pas a
pas on saute de la ligne
For Each n In Application.Names à End Sub sans message d'erreur.
merci de passer du temps avec moi.
René
Ceci devrait aller, j'ai déclaré chacune des variables :


'---------------------------------------
Sub TestMonImage()

Dim Img As String
Dim RepImage As String
Dim N As Name, Rg As Range

'Répertoire où sont les images
'Ne pas oublier le symbole "backlash"
RepImage = "c:windows" 'à déterminer

On Error Resume Next
For Each N In Application.Names
Set Rg = Range(N.Name)
If Err <> 0 Then
Err = 0
Else
If LCase(Right(N.Name, 4)) <> ".jpg" Then
Img = RepImage & N.Name & ".jpg"
Else
Img = RepImage & N.Name
End If
If Dir(Img) <> "" Then
InsérerImage Rg.Parent.Name, Rg, Img
Else
MsgBox "Ce fichier image n'existe pas : " & _
vbCrLf & Img
End If
End If
Next

End Sub
'----------------------

Sub InsérerImage(Feuille As String, _
ByVal Rg As Range, NomImage As String)

Dim Largeur As Double, Hauteur As Double
Dim Image As Object

With Worksheets(Feuille)
Largeur = Rg.Offset(, 1)(, Rg.Columns.Count).Left - Rg.Left
Hauteur = Rg.Offset(Rg.Rows.Count).Top - Rg(1).Top
Set Image = .Pictures.Insert(NomImage)
End With
With Image
.Left = Rg.Left + 0.01
.Top = Rg.Top + 0.01
'Largeur de l'image
.Width = Largeur - 0.01
'Hauteur de l'image
.Height = Hauteur - 0.01
'Est-ce que l'image doit se déplacer avec les cellules
'voici les 3 constantes possibles
.Placement = xlMove 'orxlFreeFloating or xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing

End Sub
'---------------------------------------


Salutations!



"René MATHIEU" a écrit dans le message de news:
43889cd9$0$25529$
Bonsoir michdenis,
j'ai essayer de mettre le prog. en application, j'obtient "erreur de
compilation" car
la variable "n" n'est pas définie.
Si j'ajoute Dim n as object ou variant cela continue mais alors
j'ai le meme message pour Rg.
si j'ajoute Dim Rg as object le programme saute de la ligne For Each n in
Application.Names
à End Sub.
J'ai bien mis l'adresse complete du fichier ( "c:Documents and
Settingrenemes documentsnomdefichier" )
que dois-je faire?

merci d'avance.


La procédure pourrait ressembler à ceci :

A ) Tu dois renseigner la variable RepImage adéquatement.

B ) Comme tu veux pouvoir trier la plage de données incluant
les images, tu dois t'assurer que toutes les lignes de la plage
sont de la même hauteur avant de débuter... sinon ce ne sera
pas très beau après le tri. ;-) Tu aurais alors besoin d'une autre
procédure pour replacer les images.

C ) Les bornes de l'image doivent être totalement à l'intérieur de la
cellule. Dans la procédure :"InsérerImage", j'ai enlevé .01 à la
grandeur de l'image pour cette raison....à tester sa véritable
nécessité !

'----------------------
Sub TestMonImage()

Dim Img As String
Dim RepImage As String

'Répertoire où sont les images
'Ne pas oublier le symbole "backlash"
RepImage = "c:windows" 'à déterminer

On Error Resume Next
For Each n In Application.Names
Set Rg = Range(n.Name)
If Err <> 0 Then
Err = 0
Else
If LCase(Right(n.Name, 4)) <> ".jpg" Then
Img = RepImage & n.Name & ".jpg"
Else
Img = RepImage & n.Name
End If
If Dir(Img) <> "" Then
InsérerImage Rg.Parent.Name, Rg, Img
Else
MsgBox "Ce fichier image n'existe pas : " & _
vbCrLf & Img
End If
End If
Next

End Sub
'----------------------

Sub InsérerImage(Feuille As String, ByVal Rg As Range, NomImage As
String)

With Worksheets(Feuille)
Largeur = Rg.Offset(, 1)(, Rg.Columns.Count).Left - Rg.Left
Hauteur = Rg.Offset(Rg.Rows.Count).Top - Rg(1).Top
Set Image = .Pictures.Insert(NomImage)
End With
With Image
.Left = Rg.Left + 0.01
.Top = Rg.Top + 0.01
'Largeur de l'image
Image.Width = Largeur - 0.01
'Hauteur de l'image
Image.Height = Hauteur - 0.01
'Est-ce que l'image doit se déplacer avec les cellules
'voici les 3 constantes possibles
.Placement = xlMove 'orxlFreeFloating or xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing

End Sub
'---------------------------------------









1 2