IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Déterminer les dimensions d'une image


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2
    Par défaut Déterminer les dimensions d'une image
    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

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    A propos de ColomnWidth l'aide indique :
    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
    En jouant avec ça, on arrive à connaître la largeur en points de la colonne.
    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") = ""
    A quelques poils de q près, le résultat est satisfaisant.

    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

  3. #3
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    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

  4. #4
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    Pour obtenir les dimensions d'une image avant insertion
    la macro suivante fonctionne. MERCI SilkyRoad.

    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
    J'ai remarqué qu'excel (2007) insére toujours en 72 ppp.
    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

  5. #5
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    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

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par fred65200 Voir le message
    Je n'irai pas plus loin sur ce sujet

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2
    Par défaut
    Merci pour vos réponses. Vous m'avez résolu mon problème.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment récupérer les dimensions d'une image
    Par sirius25 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 07/08/2006, 15h47
  2. [ImageMagick] Obtenir les dimensions d'une image externe?
    Par Death83 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 31/01/2006, 09h57
  3. [Image] Connaitre les dimensions d'une image sans la charger
    Par FredN dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 16/01/2006, 12h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo