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 :

Auto-orientation d'image dans Userform


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Photographe
    Inscrit en
    Décembre 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Photographe
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2018
    Messages : 10
    Par défaut Auto-orientation d'image dans Userform
    Bonjour,

    Lors du chargement d'une photo dans un userform, je souhaiterais que celle-ci se charge avec son orientation telle que dans l'explorateur windows.
    J'avais souvenir que cela se faisait de base, mais la pas moyen de le faire.

    Mes recherches m'ont mené à une solution en VB.net qui ne s'applique pas en VBA, ou à l'extraction de données exif avec GDI+ mais je n'ai pas réussi à mettre cela en place, j'ai des erreurs en permanence.

    Bref je me demandais s'il n'y avait pas une solution plus simple, surtout quand je vois qu'une insertion image dans excel sait déjà gérer cela.

    Merci d'avance,


    Quentin

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Lorsque l'on insère une image, c'est une image, que l'on insère
    Lorsqu'elle est insérée sur une feuille, elle est insérée non pas selon son "orientation", mais selon ses dimensions
    Lorsqu'elle est insérée sur un userform, elle l'est selon les dimensions données au contrôle image. Si l'on souhaite qu'elle le soit aux dimensions d'origine de l'image, on donne la valeur true à la propriété Autosize du contrôle image qui doit héberger cette image
    Si l'on souhaite afficher l'image avec d'autres dimensions, on laisse à false la propriété Autosize et on utilise l'option stretch de la propriété picturesizemode
    Il résulte de tout cela que si l'on veut agrandir ou diminuer l'affichage tout en en gardant les proportions, il suffit :
    1) d'utiliser la propriété autosize pour l'avoir aux dimensions réelles
    2) de relever la largeur et la hauteur de l'affichage ainsi obtenu
    3) d'appliquer le même coefficient à ces deux dimensions réelles -->> pour obtenir une nouvelle largeur L et une nouvelle hauteur H
    4) de remettre à false la propriété autosize
    5) de donner au contrôle image les dimensions H et L (propriétés Height et Width)
    6) de donner la valeur 1 (stretch) à la propriété PictureSizeMode
    Voilà

  3. #3
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    Bonjour,

    Unparia, si tu ne comprends pas, tu peux simplement ne pas repondre.

    Quentin, ce que tu souhaites n'est pas géré nativement par les userforms.

    Possible avec clGdiplus (gdi+ dans ma signature), avec un peu de travail quand même.

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour Arkham46
    Ce que je lis :
    J'aimerais que quand j'insère cette photo dans un userform
    J'attends maintenant que Quentin789 nous précise comment est faite cette insertion (par quel code). Si, comme je le pense, il s'agit tout simplement de l'utilisation de la méthode LoadPicture pour affecter cette image à un contrôle image, je ne modifierai pas un iota à ce que j'ai exposé. Nul besoin de la librairie gdi.

  5. #5
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    Citation Envoyé par unparia Voir le message
    Bonjour Arkham46
    Ce que je lis :

    J'attends maintenant que Quentin789 nous précise comment est faite cette insertion (par quel code). Si, comme je le pense, il s'agit tout simplement de l'utilisation de la méthode LoadPicture pour affecter cette image à un contrôle image, je ne modifierai pas un iota à ce que j'ai exposé. Nul besoin de la librairie gdi.
    Tu parles de dimensions, Quentin parle d'orientation.

    D'où vient ce besoin de faire style "je comprends tout mais je dirai rien" ?
    Les énigmes du père Fourras c'est bien mais ça use à la longue.

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Tu parles de dimensions, Quentin parle d'orientation.
    Merci pour tes jugements
    Attendons s'il te plait la réaction du demandeur. Ce sera bien mieux, non ?
    "je comprends tout mais je dirai rien" ?
    Les énigmes du père Fourras c'est bien mais ça use à la longue.
    Je ne vois aucune espèce d'énigme dans la méthode que j'ai exposée.
    Si j'ai raison, je lui ai donné une solution simple et assez claire.
    On pourrait même se passer du tremplin Autosize, en utilisant l'objet ipicturedisp, pour relever les dimensions réelles (largeur et hauteur), mais cela impliquerait une transposition d'unités himetrics en points (et je préfère éviter ce casse-tête supplémentaire à un débutant).

  7. #7
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Re
    De bon matin, je commence à me demander si tout cela ne résulterait pas de l'utilisation de termes non appropriés ici :

    Citation Envoyé par Quentin789 Voir le message
    ....Pour le moment elles s'insèrent toutes en paysage.

    .....
    Soyons clair :
    un document (texte ou autre) est dit présenté en mode paysage lorsque, vu à l'endroit, il s'étale de gauche à droite sur une surface rectangulaire plus large que haute et en mode portrait lorsque, vu à l'endroit, il s'étale de gauche à droite sur une surface rectangulaire plus haute que large.
    Regardons maintenant l'image ci-jointe :
    Nom : arkham.JPG
Affichages : 1148
Taille : 17,0 Ko
    - l'image de gauche est une image en mode portrait
    - l'image du centre est une image en mode paysage
    - l'image de droite est une image en mode portrait(elle n'est rien d'autre que l'image de gauche). Elle n'est pas une image en mode paysage du fait que le rectangle qui la contient est ici affiché dans le mauvais sens

    Les termes utilisés ont d'autant leur importance qu'une image en mode portrait devient une image en mode paysage si, insérée (à l'endroit) sur un userform, elle l'est dans un contrôle image plus large que haut.

    Quentin voudra bien lever toute ambiguïté en nous précisant expressément ce qu'il entend par "elles s'insèrent toutes en paysage"

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    c'est simple unparia
    prends un telephone android prens une photo avec le telephone horizontalement et une autre verticalement transfert sur ton pc
    place les simplement sur une feuille
    tes deux photos seront positionnée le plus petit coté horizontal donc une des deux devra etre retournée de 90°
    c'est tout

    cela dit meme avec gdi+ il n'est pas forcé que cette donnée soit dispo dans le fichier
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Merci, patricktoulon, mais cela ne m'apprend rien de la problématique exacte de Quentin, dont j'attends qu'il l'expose sans la moindre ambiguïté. C'est maintenant plus simple à exposer. Nous pourrons alors aviser en parfaite connaissance de cause, selon qu'il s'agit d'une chose ... ou de l'autre.

    PS : quant à l'expérience à laquelle tu m'invites, je crains qu'il ne te faille attendre très longtemps. Peintre (à mes heures), je déteste tout ce qui est photographie, dont le défaut principal est le piètre rendement de la perception intime, au bénéfice d'un simple reflet d'une vue.

    EDIT : le plus troublant à mes yeux est de toutes manières ceci (1er message de Quentin) :
    Lors du chargement d'une photo dans un userform, je souhaiterais que celle-ci se charge avec son orientation telle que dans l'explorateur windows.
    qui (toujours pour moi) laisse penser que le fichier image est bon et utilisable tel quel par loadpicture dans un contrôle image d'un userform.

  10. #10
    Membre régulier
    Homme Profil pro
    Photographe
    Inscrit en
    Décembre 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Photographe
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2018
    Messages : 10
    Par défaut
    Merci pour toutes vos réponses, je vais expérimenter les solutions proposées.
    Pour les informations demandées :

    - La méthode d'insertion est bien un Loadpicture

    - Mes images ont des orientations de prise de vue différentes, enregistrées par l'appareil photo dans les données exif. L'explorateur Windows interprète bien cela, tout comme excel lorsque je procède à une insertion d'image classique dans un classeur. C'est à dire qu'une photo pris avec l'appareil incliné à 90° s'affiche avec une hauteur plus grande que la largeur. Les dimensions d'une image de ce type sont du genre 2000 x 3000.

    - Lors de mon insertion via loadpicture dans l'userform, les images prisent avec l'appareil incliné s'affiche couchées, comme sur la 3em possibilité de l'image d'unparia, or je souhaiterais qu'elles s'insèrent comme lors de la 1er possibilité.

    J'ai réussi à obtenir cela une fois, notamment en chargeant une image via les propriétés de la zone, mais à la réouverture du fichier cela ne fonctionnait plus et je n'ai pas réussi à reproduire l'opération.

    Je vais essayer de mettre en place vos propositions et je reviens faire vous

  11. #11
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Voilà qui est maintenant clair.
    Il ne s'agit pas d'une image indûment affichée en portrait, mais de l'orientation de son seul rectangle.
    L'explorateur n'affiche, lui, rien. Peut par contre intervenir l'outil que tu as associé pour visualiser (pas l'explorateur)

    Tu veux donc agir sur le rectangle des pixels en fonction de la donnée exif correspondante.
    Quid si cette donnée n'a pas été enregistrée ?
    Je crois que le plus simple est alors d'intervenir en amont (hors ton application) sur tes fichiers, en les ouvrant un par un avec un des nombreux outils existants sur la toile ******* et en leur donnant l'orientation souhaitée en fonction de ce que tu vois.

    Il te suffira ensuite d'appliquer la méthode loadpicture à ces fichiers "redressés". C'est de loin le plus sage.


    ******* même l'outil Paint de Windows sait faire cela

Discussions similaires

  1. Images dans userform Excel 2007
    Par brionfred dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/12/2012, 13h40
  2. probleme image dans userform
    Par panda78 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/07/2012, 11h08
  3. Image dans userform
    Par punkisnotdead dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/08/2009, 16h01
  4. [XL-2007] Image dans userform
    Par MacMac08300 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 23/07/2009, 17h59
  5. [VBA-E] Question sur image dans userform ?
    Par damsmut dans le forum Excel
    Réponses: 3
    Dernier message: 04/04/2007, 06h32

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