Connaitre tester la taille d'une image EXCEL

Fermé
gwenaelle32 - 9 déc. 2009 à 08:25
tompols Messages postés 1273 Date d'inscription jeudi 29 juillet 2004 Statut Contributeur Dernière intervention 25 novembre 2013 - 10 déc. 2009 à 09:30
Bonjour,

Un probleme se pose à moi. J'ai une macro que j'ai développée. Elle est relativement simple.

- Son but: Créer des fiches de présentation de produits
- Son fonctionnement: Insérer une image dans une cellule excel suivant la valeur d'une cellule XX et une taille que j'ai décidé.

Mon problème est que si l'image est plus haute que large, alors elle ne sera pas positionnée exactment au même endroit dans la cellule que j'ai voulu.
Donc ce que je voudrais c'est pouvoir savoir la hauteur et la largeur de l'image. Mettre une fonction SI qui dit:

Si Lar > Lon => mettre l'image à position X
Si Lon> Lar => Alors mettre l'image à position Y

Est-ce possible???? Si quelqu'un peut m'aider... Je vous passe mon code qui fonctionne:


Sub images()

Application.ScreenUpdating = False

Dim chem As String, img_nom As String, imax As String

img_nom = Sheets("Feuil1").[B2].Value
chem = "D:\Documents and Settings\...\images\"
imax = chem & img_nom & ".jpg"

Range("F25").Select
ActiveSheet.Pictures.Insert(imax).Select

With Selection.ShapeRange
.LockAspectRatio = msoTrue 'conserve les proportions
.Height = 128 'hauteur de l'image
.Left = 427.5 'positionnement horizontal
.Top = 312# 'positionnement vertical
End With
Application.ScreenUpdating = True

End Sub
A voir également:

3 réponses

tompols Messages postés 1273 Date d'inscription jeudi 29 juillet 2004 Statut Contributeur Dernière intervention 25 novembre 2013 435
9 déc. 2009 à 11:05
Bonjour,
Tiens ce code me dit qqchose... ;)
largeur :If Selection.ShapeRange.Width > malargeur Then....
Hauteur : If Selection.ShapeRange.Height > mahauteur Then...
voilà :)
0
super! Je l'ai essayé et c'est nickel. Par contre je me demandais (sans vouloir pousser le bouchon trop loin) est-ce que vous savez comment traiter le cas ou il n'y a pas de photos dans ma base. je vous explique:

- J'arrive à inserer les images et les redimensionner
- Je désirerais pouvoir afficher une photo par defaut (toujour la même) si jamais il n'y a pas de photo qui correspond à la référence? C'est possible?

Je pensais à un Si, mais je vois pas comment le structurer...
Encore merci...
0
tompols Messages postés 1273 Date d'inscription jeudi 29 juillet 2004 Statut Contributeur Dernière intervention 25 novembre 2013 435
10 déc. 2009 à 09:30
Bonjour,
C'est possible en utilisant filesystemobject :
Set FSO =vCreateObject("Scripting.FileSystemObject")
If FSO.FileExists(imax) then .....
Bonne journée :)
0