inserer une image en fonction de la valeur du champ consulté
4 réponses
hus
Bonjour à tous !
Je suis nouveau sur le forum et j'ai recherché sur les derniers posts ce
sujet mais je ne l'ai pas trouvé. Peut être qu'il a déjà été traité
simplement je le repose :
Je dispose de :
- Feuille Excel contenant des lignes de produits identifiées chacune par
un code
- Un répertoire contenant des images nommeés par leur code
produit<code_produit>.gif
Je souhaiterai créer une colonne qui afficherait automatiquement les
l'image associée à chaque ligne produit.
Exemple
Image Code Nom
<IMG> 10 Cafetière phillips
Affichage de l'image automatique dont le nom est 10.gif
"hus" a écrit dans le message de news: dn95ov$3bl$
Bonjour à tous !
Je suis nouveau sur le forum et j'ai recherché sur les derniers posts ce sujet mais je ne l'ai pas trouvé. Peut être qu'il a déjà été traité simplement je le repose :
Je dispose de :
- Feuille Excel contenant des lignes de produits identifiées chacune par un code - Un répertoire contenant des images nommeés par leur code produit<code_produit>.gif
Je souhaiterai créer une colonne qui afficherait automatiquement les l'image associée à chaque ligne produit.
Exemple
Image Code Nom <IMG> 10 Cafetière phillips Affichage de l'image automatique dont le nom est 10.gif
"hus" <hus@club-internet.fr> a écrit dans le message de news:
dn95ov$3bl$1@news1.completel.net...
Bonjour à tous !
Je suis nouveau sur le forum et j'ai recherché sur les derniers posts ce
sujet mais je ne l'ai pas trouvé. Peut être qu'il a déjà été traité
simplement je le repose :
Je dispose de :
- Feuille Excel contenant des lignes de produits identifiées chacune par
un code
- Un répertoire contenant des images nommeés par leur code
produit<code_produit>.gif
Je souhaiterai créer une colonne qui afficherait automatiquement les
l'image associée à chaque ligne produit.
Exemple
Image Code Nom
<IMG> 10 Cafetière phillips
Affichage de l'image automatique dont le nom est 10.gif
"hus" a écrit dans le message de news: dn95ov$3bl$
Bonjour à tous !
Je suis nouveau sur le forum et j'ai recherché sur les derniers posts ce sujet mais je ne l'ai pas trouvé. Peut être qu'il a déjà été traité simplement je le repose :
Je dispose de :
- Feuille Excel contenant des lignes de produits identifiées chacune par un code - Un répertoire contenant des images nommeés par leur code produit<code_produit>.gif
Je souhaiterai créer une colonne qui afficherait automatiquement les l'image associée à chaque ligne produit.
Exemple
Image Code Nom <IMG> 10 Cafetière phillips Affichage de l'image automatique dont le nom est 10.gif
Merci d'avance Hus
Modeste
Bonsour® hus avec ferveur ;o))) vous nous disiez :
Je souhaiterai créer une colonne qui afficherait automatiquement les l'image associée à chaque ligne produit. exemple à adapter :
http://polykromy.com/html/decaler.html
-- ;o))) @+
Les news à la source !!! news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr
Bonsour® hus avec ferveur ;o))) vous nous disiez :
Je souhaiterai créer une colonne qui afficherait automatiquement les
l'image associée à chaque ligne produit.
exemple à adapter :
http://polykromy.com/html/decaler.html
--
;o)))
@+
Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
Bonsour® hus avec ferveur ;o))) vous nous disiez :
Je souhaiterai créer une colonne qui afficherait automatiquement les l'image associée à chaque ligne produit. exemple à adapter :
http://polykromy.com/html/decaler.html
-- ;o))) @+
Les news à la source !!! news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr
michdenis
Bonjour Hus,
Copie ceci dans le module feuille où l'action se déroule Tu dois définir le répertoire RepImage où se trouve tes fichiers image. La colonne où tu inscris tes codes a été définie dans cet exemple : B:B Les images s'insèrent en colonne A:A à côté du code inscrit.
'------------------------------------ Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, RepImage As String Dim Fichier As String, NomImage As String
'Définir le répertoire où sont les images RepImage = "c:" 'À définir ici
On Error Resume Next Set Rg = Intersect(Target, Range("B:B")) If Not Rg Is Nothing Then For Each C In Rg Me.Shapes(C.Row & ".jpg").Delete If C <> "" Then If IsNumeric(C) Then NomImage = C.Row & ".jpg" Fichier = RepImage & C.Value & ".jpg" If Dir(Fichier) <> "" Then InsererImage Me.Name, C.Offset(, -1), _ Fichier, NomImage Else MsgBox "Ce fichier """ & Fichier & _ """ n'existe pas.", , "Attention" End If End If End If Next End If End Sub '-----------------------------------------
Dans un module standard, copie ceci : '----------------------------------------- Sub InsererImage(feuille As String, ByVal Rg As Range, _ NomImage As String, SonNom As String) Dim Largeur As Double Dim 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 'nom de l'image .Name = SonNom .Left = Rg.Left + 0.01 .Top = Rg.Top + 0.01 'Largeur de l'image = largeur - 0.01 Image.Width = Largeur - 0.01 'Hauteur de l'image Image.Height = Hauteur - 0.01 'l'image doit se déplacer avec les cellules .Placement = xlMoveAndSize 'note, possibilité xlmove et freefloating 'verrouillé ou pas par true ou false .Locked = True End With Set Rg = Nothing
End Sub '-----------------------------------------
Salutations!
"hus" a écrit dans le message de news: dn95ov$3bl$ Bonjour à tous !
Je suis nouveau sur le forum et j'ai recherché sur les derniers posts ce sujet mais je ne l'ai pas trouvé. Peut être qu'il a déjà été traité simplement je le repose :
Je dispose de :
- Feuille Excel contenant des lignes de produits identifiées chacune par un code - Un répertoire contenant des images nommeés par leur code produit<code_produit>.gif
Je souhaiterai créer une colonne qui afficherait automatiquement les l'image associée à chaque ligne produit.
Exemple
Image Code Nom <IMG> 10 Cafetière phillips
Affichage de l'image automatique dont le nom est 10.gif
Merci d'avance Hus
Bonjour Hus,
Copie ceci dans le module feuille où l'action se déroule
Tu dois définir le répertoire RepImage où se trouve tes fichiers image.
La colonne où tu inscris tes codes a été définie dans cet exemple : B:B
Les images s'insèrent en colonne A:A à côté du code inscrit.
'------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, RepImage As String
Dim Fichier As String, NomImage As String
'Définir le répertoire où sont les images
RepImage = "c:" 'À définir ici
On Error Resume Next
Set Rg = Intersect(Target, Range("B:B"))
If Not Rg Is Nothing Then
For Each C In Rg
Me.Shapes(C.Row & ".jpg").Delete
If C <> "" Then
If IsNumeric(C) Then
NomImage = C.Row & ".jpg"
Fichier = RepImage & C.Value & ".jpg"
If Dir(Fichier) <> "" Then
InsererImage Me.Name, C.Offset(, -1), _
Fichier, NomImage
Else
MsgBox "Ce fichier """ & Fichier & _
""" n'existe pas.", , "Attention"
End If
End If
End If
Next
End If
End Sub
'-----------------------------------------
Dans un module standard, copie ceci :
'-----------------------------------------
Sub InsererImage(feuille As String, ByVal Rg As Range, _
NomImage As String, SonNom As String)
Dim Largeur As Double
Dim 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
'nom de l'image
.Name = SonNom
.Left = Rg.Left + 0.01
.Top = Rg.Top + 0.01
'Largeur de l'image = largeur - 0.01
Image.Width = Largeur - 0.01
'Hauteur de l'image
Image.Height = Hauteur - 0.01
'l'image doit se déplacer avec les cellules
.Placement = xlMoveAndSize
'note, possibilité xlmove et freefloating
'verrouillé ou pas par true ou false
.Locked = True
End With
Set Rg = Nothing
End Sub
'-----------------------------------------
Salutations!
"hus" <hus@club-internet.fr> a écrit dans le message de news: dn95ov$3bl$1@news1.completel.net...
Bonjour à tous !
Je suis nouveau sur le forum et j'ai recherché sur les derniers posts ce
sujet mais je ne l'ai pas trouvé. Peut être qu'il a déjà été traité
simplement je le repose :
Je dispose de :
- Feuille Excel contenant des lignes de produits identifiées chacune par
un code
- Un répertoire contenant des images nommeés par leur code
produit<code_produit>.gif
Je souhaiterai créer une colonne qui afficherait automatiquement les
l'image associée à chaque ligne produit.
Exemple
Image Code Nom
<IMG> 10 Cafetière phillips
Affichage de l'image automatique dont le nom est 10.gif
Copie ceci dans le module feuille où l'action se déroule Tu dois définir le répertoire RepImage où se trouve tes fichiers image. La colonne où tu inscris tes codes a été définie dans cet exemple : B:B Les images s'insèrent en colonne A:A à côté du code inscrit.
'------------------------------------ Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, RepImage As String Dim Fichier As String, NomImage As String
'Définir le répertoire où sont les images RepImage = "c:" 'À définir ici
On Error Resume Next Set Rg = Intersect(Target, Range("B:B")) If Not Rg Is Nothing Then For Each C In Rg Me.Shapes(C.Row & ".jpg").Delete If C <> "" Then If IsNumeric(C) Then NomImage = C.Row & ".jpg" Fichier = RepImage & C.Value & ".jpg" If Dir(Fichier) <> "" Then InsererImage Me.Name, C.Offset(, -1), _ Fichier, NomImage Else MsgBox "Ce fichier """ & Fichier & _ """ n'existe pas.", , "Attention" End If End If End If Next End If End Sub '-----------------------------------------
Dans un module standard, copie ceci : '----------------------------------------- Sub InsererImage(feuille As String, ByVal Rg As Range, _ NomImage As String, SonNom As String) Dim Largeur As Double Dim 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 'nom de l'image .Name = SonNom .Left = Rg.Left + 0.01 .Top = Rg.Top + 0.01 'Largeur de l'image = largeur - 0.01 Image.Width = Largeur - 0.01 'Hauteur de l'image Image.Height = Hauteur - 0.01 'l'image doit se déplacer avec les cellules .Placement = xlMoveAndSize 'note, possibilité xlmove et freefloating 'verrouillé ou pas par true ou false .Locked = True End With Set Rg = Nothing
End Sub '-----------------------------------------
Salutations!
"hus" a écrit dans le message de news: dn95ov$3bl$ Bonjour à tous !
Je suis nouveau sur le forum et j'ai recherché sur les derniers posts ce sujet mais je ne l'ai pas trouvé. Peut être qu'il a déjà été traité simplement je le repose :
Je dispose de :
- Feuille Excel contenant des lignes de produits identifiées chacune par un code - Un répertoire contenant des images nommeés par leur code produit<code_produit>.gif
Je souhaiterai créer une colonne qui afficherait automatiquement les l'image associée à chaque ligne produit.
Exemple
Image Code Nom <IMG> 10 Cafetière phillips
Affichage de l'image automatique dont le nom est 10.gif
Merci d'avance Hus
JB
Bonjour,
-les images sont dans le répertoire de l'application. -La colonne A contient les noms des images
Sub ImportImages2() ChDir ActiveWorkbook.Path nf = Dir("*.jpg") ' premier fichier Range("b2").Select Do While ActiveCell.Offset(0, -1) <> "" nf = ActiveCell.Offset(0, -1) & ".jpg" Set monimage = ActiveSheet.Pictures.Insert(nf) ActiveCell.EntireRow.RowHeight = monimage.Height + 0 ActiveCell.Offset(1, 0).Select Loop End Sub