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
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.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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Partager