OVH Cloud OVH Cloud

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
voici un exemple :

http://cjoint.com/?kFaC30siPb

isabelle

Emile a écrit :
"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




Avatar
Emile63
On 31 oct, 00:30, isabelle a écrit :
voici un exemple :

http://cjoint.com/?kFaC30siPb

isabelle


-----------------

Bonjour Isabelle et merci pour cet exemple.

Malheureusement je me retrouve face au même problème...

A) Si je l'utilise telle quelle, la macro se déroule entièrement,
l'image est insérée corectement, il n'y a pas d'erreurs,
mais la fin de la procédure (le redimentionnement prop.en cm "With" )
ne s'applique pas.

B) Si je met en REM :On error resume next
La procédure se bloque, j'ai une erreur "438" sur la ligne:
Set MaReference = .Pictures.Insert(isect).LockAspectRatio = msoTrue

C: Si j'enlève le "LockAspectRatio=msoTrue " ,qui provoque ce
plantage, de:
Set MaReference = .Pictures.Insert(isect)
La procédure se déroule correctement et sans plantage.
Mais la fin de procédure est incomplète.
C-à-d que l'image s'insert et se dimentionne à la hauteur souhaitée ( 5
cm)
toutefois la proportionalité de la largeur ne s'applique pas
correctement.
L'image devient un carré de 5 x 5 cm
Puisque dans la boucle "With", la procédure respecte la ligne:
.Width = .Height
Et si avant cette ligne j'ajoute la ligne:
.LockAspectRatio = msoTrue
il ne plante pas mais n'en tient pas compte,
et insert toujours le carré 5x5.

De toute évidence, c'est ce : .LockAspectRatio = msoTrue
qui pose problèmes, car même un utilisant l'enregistreur de macros,
si j'insert une image etc.. Et ensuite je lui enlève la largeur,
il ne respecte pas la proportionalité.
Je suis a court d'idées... ;-)
Cordialement,

Emile
Avatar
isabelle
bonjour Emile,

je ne comprend pas vraiment ce que tu veut faire,
.LockAspectRatio = msoTrue
oblige de redimensionner en proportion donc en pourcentage
et non pas en cm

isabelle


Emile63 a écrit :
On 31 oct, 00:30, isabelle a écrit :
voici un exemple :

http://cjoint.com/?kFaC30siPb

isabelle


-----------------

Bonjour Isabelle et merci pour cet exemple.

Malheureusement je me retrouve face au même problème...

A) Si je l'utilise telle quelle, la macro se déroule entièrement,
l'image est insérée corectement, il n'y a pas d'erreurs,
mais la fin de la procédure (le redimentionnement prop.en cm "With" )
ne s'applique pas.

B) Si je met en REM :On error resume next
La procédure se bloque, j'ai une erreur "438" sur la ligne:
Set MaReference = .Pictures.Insert(isect).LockAspectRatio = msoTrue

C: Si j'enlève le "LockAspectRatio=msoTrue " ,qui provoque ce
plantage, de:
Set MaReference = .Pictures.Insert(isect)
La procédure se déroule correctement et sans plantage.
Mais la fin de procédure est incomplète.
C-à-d que l'image s'insert et se dimentionne à la hauteur souhaitée (5
cm)
toutefois la proportionalité de la largeur ne s'applique pas
correctement.
L'image devient un carré de 5 x 5 cm
Puisque dans la boucle "With", la procédure respecte la ligne:
.Width = .Height
Et si avant cette ligne j'ajoute la ligne:
.LockAspectRatio = msoTrue
il ne plante pas mais n'en tient pas compte,
et insert toujours le carré 5x5.

De toute évidence, c'est ce : .LockAspectRatio = msoTrue
qui pose problèmes, car même un utilisant l'enregistreur de macros,
si j'insert une image etc.. Et ensuite je lui enlève la largeur,
il ne respecte pas la proportionalité.
Je suis a court d'idées... ;-)
Cordialement,

Emile



Avatar
Emile63
On 31 oct, 12:29, isabelle wrote:
bonjour Emile,

je ne comprend pas vraiment ce que tu veut faire,
.LockAspectRatio = msoTrue
oblige de redimensionner en proportion donc en pourcentage
et non pas en cm

isabelle



Bonjour Isabelle,

Désolé, peut-être que je me suis mal exprimé :-(
Je souhaite pouvoir préciser 1 dimension (dans mon cas 5 cm de
hauteur)
et que la largeur se redimensionne automatiquement et
proportionellement (en %) à cette donnée.
C'est a dire que si j'importe une "petite" image de 2,5 cm de hauteur
que je souhaite la visualiser en 5 cm (le double)
La largeur devra automatiquement se doubler également.
Pour que les proportions de l'image ne soient pas altérés, et c'est ce
que je n'arrive pas à résoudre sur la fin de cette procédure...

Cordialement,

Emile
Avatar
isabelle
essaie comme ça ,

With MaReference
.LockAspectRatio = msoTrue
.Height = CDbl(Application.CentimetersToPoints(5))
End With


isabelle

Emile63 a écrit :
On 31 oct, 00:30, isabelle a écrit :
voici un exemple :

http://cjoint.com/?kFaC30siPb

isabelle


-----------------

Bonjour Isabelle et merci pour cet exemple.

Malheureusement je me retrouve face au même problème...

A) Si je l'utilise telle quelle, la macro se déroule entièrement,
l'image est insérée corectement, il n'y a pas d'erreurs,
mais la fin de la procédure (le redimentionnement prop.en cm "With" )
ne s'applique pas.

B) Si je met en REM :On error resume next
La procédure se bloque, j'ai une erreur "438" sur la ligne:
Set MaReference = .Pictures.Insert(isect).LockAspectRatio = msoTrue

C: Si j'enlève le "LockAspectRatio=msoTrue " ,qui provoque ce
plantage, de:
Set MaReference = .Pictures.Insert(isect)
La procédure se déroule correctement et sans plantage.
Mais la fin de procédure est incomplète.
C-à-d que l'image s'insert et se dimentionne à la hauteur souhaitée (5
cm)
toutefois la proportionalité de la largeur ne s'applique pas
correctement.
L'image devient un carré de 5 x 5 cm
Puisque dans la boucle "With", la procédure respecte la ligne:
.Width = .Height
Et si avant cette ligne j'ajoute la ligne:
.LockAspectRatio = msoTrue
il ne plante pas mais n'en tient pas compte,
et insert toujours le carré 5x5.

De toute évidence, c'est ce : .LockAspectRatio = msoTrue
qui pose problèmes, car même un utilisant l'enregistreur de macros,
si j'insert une image etc.. Et ensuite je lui enlève la largeur,
il ne respecte pas la proportionalité.
Je suis a court d'idées... ;-)
Cordialement,

Emile



Avatar
Emile63
On 31 oct, 13:03, isabelle wrote:
essaie comme ça ,

     With MaReference
             .LockAspectRatio = msoTrue
             .Height = CDbl(Application.CentimetersToPoin ts(5))
     End With

isabelle




Re bonjour Isabelle,

Erreur "438" l'objet n'admet pas cette propriété ou méthode... :-( (
Avec séléctionné le "LockAspectRatio = msoTrue"

j'ai décarté le dimensionnement (Heigt), car pour tester j'ai gardé
les dimensions en pouces..
et je n'ai pas relevé de soucis..
Je pense que c'est la commande de redimentionnement - LockAspectRatio
- qui bloque, mais
je n'arrive pas a comprendre ce qu'il veut me dire..
J'interprète que l'objet MaReference n'accèpte pas la methode :
LockAspectRatio
Avatar
isabelle
et si tu essaie avec mon fichier modifier,

http://cjoint.com/?kFnDaT3VX4

est ce que tu as toujours l'erreur ?

isabelle

Emile63 a écrit :
On 31 oct, 13:03, isabelle wrote:
essaie comme ça ,

With MaReference
.LockAspectRatio = msoTrue
.Height = CDbl(Application.CentimetersToPoints(5))
End With

isabelle




Re bonjour Isabelle,

Erreur "438" l'objet n'admet pas cette propriété ou méthode... :-((
Avec séléctionné le "LockAspectRatio = msoTrue"

j'ai décarté le dimensionnement (Heigt), car pour tester j'ai gardé
les dimensions en pouces..
et je n'ai pas relevé de soucis..
Je pense que c'est la commande de redimentionnement - LockAspectRatio
- qui bloque, mais
je n'arrive pas a comprendre ce qu'il veut me dire..
J'interprète que l'objet MaReference n'accèpte pas la methode :
LockAspectRatio


Avatar
Emile
"isabelle" a écrit :> et si tu essaie avec mon fichier modifier,

http://cjoint.com/?kFnDaT3VX4

est ce que tu as toujours l'erreur ?





OUI, c'est pareille, l'image est toute écrasée.
Essai de désactiver le "On error resume next"
et dis-moi si tu n'as pas d'erreurs..
Avatar
Emile63
>
OUI, c'est pareille, l'image est toute écrasée.
Essai de désactiver le "On error resume next"
et dis-moi si tu n'as pas d'erreurs..


voir ici:
http://cjoint.com/?kFryXQAj5E

PS: j'ai Excel 2003 (SP3)
Avatar
isabelle
décourage toi pas Emile, on va y arriver,

Sub Ellipse5_QuandClic()
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
.Pictures.Insert(isect).Select
End With

With Selection.ShapeRange
.LockAspectRatio = msoTrue
.Height = CDbl(Application.CentimetersToPoints(5))
End With
End If
End Sub

isabelle

Emile a écrit :
"isabelle" a écrit :> et si tu essaie avec mon fichier modifier,
http://cjoint.com/?kFnDaT3VX4

est ce que tu as toujours l'erreur ?





OUI, c'est pareille, l'image est toute écrasée.
Essai de désactiver le "On error resume next"
et dis-moi si tu n'as pas d'erreurs..




1 2 3