Bonjour.
Comme l'intitulé de la discussion l'indique, Je souhaiterais limiter la hauteur d'images à insérer dans Excel de manière à éviter un message d'erreur
voici une partie du code :
C'est la ligne 6 qui pose problème, en effet la plupart de mes images excèdent La hauteur limite d'une ligne Excel (409 points), Je pense qu'il y a un facteur de conversion à appliquer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 'Limitation de l insertion d image en fct de la hauteur de ligne Excel 'Hauteur des lignes 409 Points 'Chargement de l image Set oChargeImage = LoadPicture(sNomJPG) 'Test hauteur image < hauteur max cellule Excel If oChargeImage.Height > 409 Then .Cells(iLigne, Description) = "IMAGE D'ORIGINE TROP HAUTE" Else 'Insertion image par la méthode AddPicture, le deuxieme argument permet d'insérer l image sans lien 'les 4eme et 5eme sont les coordonnées, ici à l origine 'les 6eme et 7eme sont la taille, ici la taille d'origine Set oImage = oSheet.Shapes.AddPicture(sNomJPG, False, True, 0, 0, -1, -1) 'LockAspectRatio=True si la forme spécifiée conserve ses proportions d'origine oImage.LockAspectRatio = True 'Placement de l image oImage.Top = oSheet.Cells(iLigne, Description).Top oImage.Left = oSheet.Cells(iLigne, Description).Left 'ajustement de la hauteur de ligne et largeur colonne en fonction des images .Rows(iLigne).RowHeight = oImage.Height If oImage.Width > lLargeurColonne Then lLargeurColonne = oImage.Width .Columns(Description).ColumnWidth = lLargeurColonne * (54.29 / 288) End If End If
Notez que lorsqu'on fait appel à la propriété Height de l'image déjà insérée on obtient une valeur du même ordre de grandeur que les lignes Excel.
Pour préciser voici la déclaration des Variables objets:
Le problème est lié à la mesure de la hauteur de l'image à partir de l'objet de type IPictureDisp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Dim oImage As Shape Dim oChargeImage As IPictureDisp
J'apprécierais toute aide.
Merci.
Cordialement
Partager