Bonjour,
Je souhaite que la valeur d'une cellule corresponde à la longueur (ou la largeur) d'une image stockée dans un fichier .jpg. Comment faire ?
J'ai eu beau chercher, je ne trouve pas.
Merci pour votre aide
z1kz1k
Version imprimable
Bonjour,
Je souhaite que la valeur d'une cellule corresponde à la longueur (ou la largeur) d'une image stockée dans un fichier .jpg. Comment faire ?
J'ai eu beau chercher, je ne trouve pas.
Merci pour votre aide
z1kz1k
A propos de ColomnWidth l'aide indique :
En jouant avec ça, on arrive à connaître la largeur en points de la colonne.Citation:
Une unité de largeur de colonne est égale à la largeur d'un caractère du style Normal. Dans le cas des polices proportionnelles, la largeur du caractère 0 (zéro) est utilisée
A quelques poils de q près, le résultat est satisfaisant.Code:
1
2
3
4
5
6
7
8
9
10
11
12 Range("B1") = "'0000000000" Range("B1").Font.Name = "Arial" Range("B1").Font.Size = 10 Columns(2).Columns.AutoFit rapport = Columns(2).Width / 11 Largeur = ActiveSheet.Shapes(1).Width / rapport Hauteur = ActiveSheet.Shapes(1).Height Columns(2).ColumnWidth = Largeur Rows(2).RowHeight = Hauteur ActiveSheet.Shapes(1).Top = Range("B2").Top ActiveSheet.Shapes(1).Left = Range("B2").Left Range("B1") = ""
Pourquoi Columns(2).Width / 11 et non /10 ? Parce que chaque 0 est séparé du suivant par 1 espace... Empirique mais je n'ai pas mieux :?
Avec une autre police qu'Arial, faut voir... J'ai testé afin d'avoir 10 caractères pour une largeur de colonne ronde...
Tu vois
pour la hauteur tu peux utiliser
Application.InchesToPoints(IMAGE.Height) / 72
si tu veux les dimensions de ton image avant l'insertion, un lien qui peux t'aider
http://silkyroad.developpez.com/VBA/...ition/#LII-B-1
Salutations
Pour obtenir les dimensions d'une image avant insertion
la macro suivante fonctionne. MERCI SilkyRoad.
J'ai remarqué qu'excel (2007) insére toujours en 72 ppp.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Sub DimensionsImage() 'il faut ajouter la référence WIAVideo xx.x Type Library pour Excel 2007 'Excel insère toujours en 72 ppp Dim Img1 As Object 'Création conteneur pour l'image à manipuler Set Img1 = CreateObject("WIA.ImageFile") 'Chargement de l'image dans le conteneur Img1.LoadFile ("C:\Users\xxxx\Pictures\Image_72_ppp.jpg") MsgBox "Largeur : " & Img1.Width & vbLf & _ "Hauteur : " & Img1.Height End Sub
donc attention aux autres résolutions
Img1.Height correspond à la hauteur de cellule.
Je n'ai pas trouvé mieux qu'ouskel'n'or pour la largeur.
Salutations
J'ai lu dernièrement la phrase suivante sur un forum :
En toutes circonstances, il faut savoir juger jusqu'où on peut aller trop loin.
À priori il va falloir que je la médite
Pour la largeur avec une police Arial 10 comme style Normal
On obtient la largeur de cellule avec l'équation suivante
Largeur = 0.14286 * Application.RoundUp(Img1.Width * 4 / 3, 0) - 0.716
Équation trouvée avec la courbe de tendance des graphiques Excel
Je n'irai pas plus loin sur ce sujet
Bonsoir
Merci pour vos réponses. Vous m'avez résolu mon problème.