Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Possibilité de visualiser des images dans une cellule Excel?

24 réponses
Avatar
Emile
Bonjour a tous,

J'ai une liste de stock sous forme de petite base de données sur une feuille
Excel.
J'ai dans un autre onglet la possibilité de visualiser unitairement mes
articles indépendamment, (prix, stocks, P.Achat etc..)
De type - Formulaire - avec des formules : RechercheV()
Mon souhait serrait de visualiser le dessin / photo de l'article au moment
ou je le sélectionne.
Quelles sont mes possibilités?

Merci d'avance pour votre aide et idées,
Cordialement,
Emile

10 réponses

1 2 3
Avatar
isabelle
bonjour Emile,

si tu créer un autre onglet avec en colonne A des numéro de référence et en colonne B
le chemin complet de la photo, et d'ajouter ces numéro dans des colonne adjacente à la liste de stock
il serait possible via vba de faire de faire apparaitre la photo
lorsque une cellule des colonnes D ou E ou + de
l'onglet (visualiser unitairement :prix, stocks, P.Achat Photo1, Photo2...) est sélectionner.

isabelle

Emile a écrit :
Bonjour a tous,

J'ai une liste de stock sous forme de petite base de données sur une feuille
Excel.
J'ai dans un autre onglet la possibilité de visualiser unitairement mes
articles indépendamment, (prix, stocks, P.Achat etc..)
De type - Formulaire - avec des formules : RechercheV()
Mon souhait serrait de visualiser le dessin / photo de l'article au moment
ou je le sélectionne.
Quelles sont mes possibilités?

Merci d'avance pour votre aide et idées,
Cordialement,
Emile




Avatar
Emile
"isabelle" a écrit > si tu créer un autre onglet avec en colonne A des
numéro de référence et en colonne B
le chemin complet de la photo, et d'ajouter ces numéro dans des colonne
adjacente à la liste de stock
il serait possible via vba de faire de faire apparaitre la photo
lorsque une cellule des colonnes D ou E ou + de
l'onglet (visualiser unitairement :prix, stocks, P.Achat Photo1,
Photo2...) est sélectionner.

isabelle



Merci Isabelle pour ton aide.
C'est bien ce que j'entrevoyais, mais c'est le code VBA ou je coince... :-(
Tu aurais un exemple, ou m'indiquer ou je pourrais en trouver un?

Merci d'avance, ;-)
Cordialement,
Emile
Avatar
isabelle
bonjour Emile,

en supposant que le chemin complet des photo (3 photo dans cette excemple) soit en cellule D2:F2
ce code est à copier sur la page code de la feuille :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set isect = Application.Intersect(Target, Range("D2:F2"))
If Not isect Is Nothing Then
ActiveSheet.Pictures.Insert(Target).Select
End If
End Sub


isabelle

Emile a écrit :
"isabelle" a écrit > si tu créer un autre onglet avec en colonne A des
numéro de référence et en colonne B
le chemin complet de la photo, et d'ajouter ces numéro dans des colonne
adjacente à la liste de stock
il serait possible via vba de faire de faire apparaitre la photo
lorsque une cellule des colonnes D ou E ou + de
l'onglet (visualiser unitairement :prix, stocks, P.Achat Photo1,
Photo2...) est sélectionner.

isabelle



Merci Isabelle pour ton aide.
C'est bien ce que j'entrevoyais, mais c'est le code VBA ou je coince... :-(
Tu aurais un exemple, ou m'indiquer ou je pourrais en trouver un?

Merci d'avance, ;-)
Cordialement,
Emile




Avatar
Emile
Bonjour/soir Isabelle,

Je te remercie pour ton aide. :-)
Je me suis beaucoup inspiré de ta proposition pour l'appliquer comme suit,
(en fonction des caractéristiques de ma feuille)
toutefois j'ai quelques soucis encore avec tout ça... :-(
J'ai mis des remarques sur mes lignes (j'espère que ce sera assez
compréhensible)
--------------------------------------------------
Private Sub Worksheet_Calculate() ' J'ai opté pour Worksheet_Calculate
plutot que, Worksheet_SelectionChange
'Car j'ai mis un controle (toupie) sur la feuille de calcul (qui se présent
un peu comme un formulaire que j'imprime selon mon besoin)
' Et l'idée c'est de changer de photo à chaque fois que le contenu de ma
cellule qui contient l'article change
'' Jusqu'ici, ça fonctionne plus ou moins...
'(Je crois que je devrais opter pour que la macro soit déclanchée par le
controle plutôt que par l'événementiel..)
Dim MaReference As Picture ' ici je crois que je me plante, étant donné que
je cherche a retravailler les dimension d'un objet image
On Error Resume Next
Set isect = Application.Range("Ma_Photo") 'Cellule de la feuille (contient
une formule:RECHERCHEV())
'
indiquant le chemin complet de la photo de l'article
For Each Image In ActiveSheet.Pictures ' Par cette boucle j'efface la
/les photo(s) précédente (s'il y en a)
Image.Delete
Next Image
If Not isect Is Nothing Then ' Partie du code que tu m'a proposé :-)
With ActiveSheet
Range("Ma_Photo").Select
Set MaReference= .Pictures.Insert(isect) ' Je créer l'objet
"MaReference" dans l'espoir (vain) de le redimensionner.
End With
End If
With MaReference ' Etant donné que mes photos sont de différentes source
et dimensions,
'je souhaite les afficher (dimensionner)
toutes avec la même hauteur, en gardant ses proportions.
.LockAspectRatio = msoTrue ' Cette commande ne fonctionne pas
.Height = CentimetersToPoints(5) ' Hauteur directement en cm
avec la conversion, Cette commande ne fonctionne pas
.ScaleWidth = .ScaleHeight ' on force la même échelle, mais
Cette commande ne fonctionne pas
End With
End Sub
----------------------------------------------------
Voilà mes petits soucis... Si d'une manière ou d'une autre j'arrive à faire
fonctionner ce bout de code,
ce serrait "Top". ;-)
Merci encore pour tes conseils,
Cordialement,

Emile

"isabelle" a écrit
en supposant que le chemin complet des photo (3 photo dans cette excemple)
soit en cellule D2:F2
ce code est à copier sur la page code de la feuille :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set isect = Application.Intersect(Target, Range("D2:F2"))
If Not isect Is Nothing Then
ActiveSheet.Pictures.Insert(Target).Select
End If
End Sub


isabelle



Avatar
isabelle
bonjour Emile,

Private Sub Worksheet_Calculate()
Dim MaReference As Object
On Error Resume Next
Set isect = Application.Range("Ma_Photo")
For Each Image In ActiveSheet.Pictures
Image.Delete
Next Image
If Not isect Is Nothing Then
With ActiveSheet
Range("Ma_Photo").Select
Set MaReference = .Pictures.Insert(isect).LockAspectRatio = msoTrue
End With
End If
With MaReference
.Height = Application.CentimetersToPoints(5)
.Width = .Height
End With
End Sub

isabelle

Emile a écrit :
Bonjour/soir Isabelle,

Je te remercie pour ton aide. :-)
Je me suis beaucoup inspiré de ta proposition pour l'appliquer comme suit,
(en fonction des caractéristiques de ma feuille)
toutefois j'ai quelques soucis encore avec tout ça... :-(
J'ai mis des remarques sur mes lignes (j'espère que ce sera assez
compréhensible)
--------------------------------------------------
Private Sub Worksheet_Calculate() ' J'ai opté pour Worksheet_Calculate
plutot que, Worksheet_SelectionChange
'Car j'ai mis un controle (toupie) sur la feuille de calcul (qui se présent
un peu comme un formulaire que j'imprime selon mon besoin)
' Et l'idée c'est de changer de photo à chaque fois que le contenu de ma
cellule qui contient l'article change
'' Jusqu'ici, ça fonctionne plus ou moins...
'(Je crois que je devrais opter pour que la macro soit déclanchée par le
controle plutôt que par l'événementiel..)
Dim MaReference As Picture ' ici je crois que je me plante, étant donné que
je cherche a retravailler les dimension d'un objet image
On Error Resume Next
Set isect = Application.Range("Ma_Photo") 'Cellule de la feuille (contient
une formule:RECHERCHEV())
'
indiquant le chemin complet de la photo de l'article
For Each Image In ActiveSheet.Pictures ' Par cette boucle j'efface la
/les photo(s) précédente (s'il y en a)
Image.Delete
Next Image
If Not isect Is Nothing Then ' Partie du code que tu m'a proposé :-)
With ActiveSheet
Range("Ma_Photo").Select
Set MaReference= .Pictures.Insert(isect) ' Je créer l'objet
"MaReference" dans l'espoir (vain) de le redimensionner.
End With
End If
With MaReference ' Etant donné que mes photos sont de différentes source
et dimensions,
'je souhaite les afficher (dimensionner)
toutes avec la même hauteur, en gardant ses proportions.
.LockAspectRatio = msoTrue ' Cette commande ne fonctionne pas
.Height = CentimetersToPoints(5) ' Hauteur directement en cm
avec la conversion, Cette commande ne fonctionne pas
.ScaleWidth = .ScaleHeight ' on force la même échelle, mais
Cette commande ne fonctionne pas
End With
End Sub
----------------------------------------------------
Voilà mes petits soucis... Si d'une manière ou d'une autre j'arrive à faire
fonctionner ce bout de code,
ce serrait "Top". ;-)
Merci encore pour tes conseils,
Cordialement,

Emile

"isabelle" a écrit
en supposant que le chemin complet des photo (3 photo dans cette excemple)
soit en cellule D2:F2
ce code est à copier sur la page code de la feuille :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set isect = Application.Intersect(Target, Range("D2:F2"))
If Not isect Is Nothing Then
ActiveSheet.Pictures.Insert(Target).Select
End If
End Sub


isabelle








Avatar
Emile63
Bonjour Isabelle,
Et merci pour ton aide ;-)
Je me suis empressé de tester ta proposition, mais malheureusement ça
coince toujours..Au niveau du dernier bloc With. :-((
Mon_Image s'importe correctement dans la cellule sélectionnée
("Ma_Photo")
Cependant le traitement -WITH- de l'objet "MaReference" qui suit
consistant à modifier la hauteur (5 cm) proportionellement à la
largeur
ne fonctionne pas du tout...
Je ne voudrais pas abuser, mais.. ;-)
- As-tu une nouvelle idée??

Merci d'avance,
Cordialement,

Emile
Avatar
isabelle
bonjour Emile,

y a t'il un message d'erreur ?

isabelle

Emile63 a écrit :
Bonjour Isabelle,
Et merci pour ton aide ;-)
Je me suis empressé de tester ta proposition, mais malheureusement ça
coince toujours..Au niveau du dernier bloc With. :-((
Mon_Image s'importe correctement dans la cellule sélectionnée
("Ma_Photo")
Cependant le traitement -WITH- de l'objet "MaReference" qui suit
consistant à modifier la hauteur (5 cm) proportionellement à la
largeur
ne fonctionne pas du tout...
Je ne voudrais pas abuser, mais.. ;-)
- As-tu une nouvelle idée??

Merci d'avance,
Cordialement,

Emile





Avatar
Emile63
On 30 oct, 18:08, isabelle wrote:
bonjourEmile,

y a t'il un message d'erreur ?

isabelle




Bonjour Isabelle,

OUI,
*******************
erreur 438,
Objet n'admet pas cette propriété ou méthode
*******************

Range("Ma_Photo").Select
Set MaReference = .Pictures.Insert(isect).LockAspectRatio
= msoTrue ' <-- ICI
End With
Avatar
isabelle
bonjour Emile,

cette commande est t'elle sur une seul ligne ?

Set MaReference = .Pictures.Insert(isect).LockAspectRatio = msoTrue

isabelle

Emile63 a écrit :
On 30 oct, 18:08, isabelle wrote:
bonjourEmile,

y a t'il un message d'erreur ?

isabelle




Bonjour Isabelle,

OUI,
*******************
erreur 438,
Objet n'admet pas cette propriété ou méthode
*******************

Range("Ma_Photo").Select
Set MaReference = .Pictures.Insert(isect).LockAspectRatio
= msoTrue ' <-- ICI
End With


Avatar
Emile
"isabelle" a écrit >
cette commande est t'elle sur une seul ligne ?

Set MaReference = .Pictures.Insert(isect).LockAspectRatio = msoTrue




OUI, elle l'est.
L'erreur dont je te parlais sur mon précédent message, met en surbrillance
"msoTrue"
avec ce message: 1004 Erreur définie par l'application ou par l'objet
1 2 3