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 :

Ajuster une photo à un objet image d'un userform


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 166
    Points : 94
    Points
    94
    Par défaut Ajuster une photo à un objet image d'un userform
    Bonjour,

    j'ai une photo plus grande que mon objet image sur mon userform et je voudrais que cette photo soit à la taille de mon objet image

    Comment ajuster une image dans un objet image sur un userform ?


    merci d'avance

  2. #2
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Salut grimgrim,

    La propriété "PictureSizeMode" doit contenir la valeur 1, il me semble.

    Cordialement,
    Kimy
    La logique :
    • Plus ya de gruyère, moins ya de gruyère.
    • Plus tu pédales moins vite, moins tu avances plus vite.
    Plusoyer les réponses pertinentes et n'oublier pas de résolver en fin de post !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 166
    Points : 94
    Points
    94
    Par défaut
    Bonsoir,

    Cela n'a pas fonctionner, j'ai fait ce code

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    For Each FileItem In SourceFolder.Files
    'Inscrit le nom du fichier dans la cellule
        A = FileItem.Name
        If ArtRech = Left(A, 9) Or ArtRech = Left(A, 7) Then 'Or ArtRech = Left(A, 7)
     
            If B = 1 Then
                Image1.Picture = LoadPicture(Chemin & A)
                Image1.PictureSizeMode = fmPictureSizeModeStretch
            ElseIf B = 2 Then
                Image2.Picture = LoadPicture(Chemin & A)
                Image12PictureSizeMode = fmPictureSizeModeStretch
            ElseIf B = 3 Then
                Image3.Picture = LoadPicture(Chemin & A)
                Image3.PictureSizeMode = fmPictureSizeModeStretch
                AA = A
                'Principal.Shapes.Pictures("Image5").Visible = False
     
            ElseIf B = 4 Then
                Image4.Picture = LoadPicture(Chemin & A)
                Image4.PictureSizeMode = fmPictureSizeModeStretch
            ElseIf B = 5 Then
                Image5.Picture = LoadPicture(Chemin & A)
                Image5.PictureSizeMode = fmPictureSizeModeStretch
            End If
            B = B + 1
        End If
        I = I + 1
    Next FileItem
    '
    If B = 4 Then
        Image3.Picture = LoadPicture("")
        Image5.Picture = LoadPicture(Chemin & AA)
        Image5.PictureSizeMode = fmPictureSizeModeStretch
    End If

    Cordialement,

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 166
    Points : 94
    Points
    94
    Par défaut
    Bonjour,

    S'il n'est pas possible d'adapter la photo à l'objet image dans un userform, est il possible de faire de l'inverse ?

    Avez vous une idée des deux possibilités et du problème rencontré ?

    Cordialement,

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Dans l'aide de VBA Excel:

    PictureSizeMode, propriété
    Voir aussi Exemple S'applique à Spécificités

    Spécifie comment afficher une image de fond sur un contrôle, une feuille ou une page.

    Syntaxe

    object.PictureSizeMode [= fmPictureSizeMode]

    La syntaxe de la propriété PictureSizeMode comprend les éléments suivants :

    Élément Description
    object Objet valide.
    fmPictureSizeMode Facultatif. Action à effectuer si l'image et la feuille ou la page qui la contienne ne sont pas de la même taille.


    Valeurs

    Les valeurs de fmPictureSizeMode sont les suivantes :

    Constante Valeur Description
    fmPictureSizeModeClip 0 Découpe la partie de l'image plus grande que la feuille ou la page (par défaut).
    fmPictureSizeModeStretch 1 Étire l'image pour remplir la feuille ou la page. Cette définition déforme l'image dans le sens horizontal ou vertical.
    fmPictureSizeModeZoom 3 Agrandit l'image mais ne la déforme ni dans le sens horizontal, ni dans le sens vertical.


    Remarques

    La valeur fmPictureSizeModeClip indique que vous voulez afficher l'image dans ses taille et échelle initiales. Si la feuille ou page est plus petite que l'image, cette définition n'affiche que la partie de l'image qui tient dans la feuille ou page.

    Les valeurs fmPictureSizeModeStretch et fmPictureSizeModeZoom agrandissent toutes les deux l'image, mais la valeur fmPictureSizeModeStretch provoque une distorsion. La valeur fmPictureSizeModeStretch agrandit l'image dans le sens vertical et horizontal jusqu'à ce que celle-ci atteigne les bords correspondants du conteneur ou contrôle. La valeur fmPictureSizeModeZoom agrandit l'image jusqu'à ce qu'elle atteigne les bords horizontaux ou verticaux du conteneur ou contrôle. Si l'image atteint en premier les bords horizontaux, la distance restante jusqu'aux bords verticaux reste vierge. Si elle atteint en premier les bords horizontaux, la distance restante jusqu'aux bords horizontaux reste vierge.
    Encore dans l'aide de VBA Excel:

    AutoSize, propriété
    Voir aussi Exemple S'applique à Spécificités

    Spécifie si un objet se redimensionne automatiquement pour afficher la totalité de son contenu.

    Syntaxe

    object.AutoSize [= Boolean]

    La syntaxe de la propriété AutoSize comprend les éléments suivants :

    Élément Description
    object Objet valide.
    Boolean Facultatif. Si le contrôle est redimensionné


    Valeurs

    Les valeurs de Boolean sont les suivantes :

    Valeur Description
    True Redimensionne automatiquement le contrôle pour afficher la totalité de son contenu.
    False Maintient la dimension du contrôle constante. Le contenu est découpé lorsqu'il dépasse la zone du contrôle (par défaut).


    Remarques

    Pour les contrôles ayant une légende, la propriété AutoSize précise si le contrôle s'ajuste automatiquement pour afficher toute la légende.

    Pour les contrôles sans légende, cette propriété spécifie si ce contrôle s'ajuste automatiquement pour afficher les informations qu'il contient. Dans un contrôle ComboBox, par exemple, la définition de AutoSize sur True détermine automatiquement la largeur de la zone d'affichage pour correspondre à la longueur du texte courant.

    Pour les zones de texte à ligne unique, la définition de AutoSize sur True détermine automatiquement la largeur de la zone d'affichage pour correspondre à la longueur du texte de la zone de texte.

    Pour une zone de texte à plusieurs lignes ne contenant pas de texte, la définition de AutoSize sur True affiche automatiquement le texte sous forme de colonne. La largeur de la colonne de texte est déterminée pour accueillir la lettre la plus large de cette taille des caractères. La hauteur de la colonne de texte est définie pour afficher tout le texte du contrôle TextBox.

    Pour une zone de texte à plusieurs lignes contenant du texte, la définition de AutoSize sur True agrandit automatiquement le TextBox verticalement pour afficher la totalité du texte. La largeur de TextBox reste inchangée.

    Note Si vous modifiez manuellement la taille d'un contrôle alors que AutoSize est défini sur True, la modification manuelle l'emporte sur le réglage de AutoSize.
    Toujours dans l'aide de VBA Excel

    Height, Width, propriétés
    Voir aussi Exemple S'applique à Spécificités

    Hauteur ou largeur en points d'un objet.

    Syntaxe

    object.Height [= Single]

    object.Width [= Single]

    La syntaxe des propriétés Height et Width comprend les éléments suivants :

    Élément Description
    object Objet valide.
    Single Facultatif. Expression numérique spécifiant les dimensions d'un objet.


    Remarques

    Les propriétés Height et Width sont automatiquement mises à jour lorsque vous déplacez ou redimensionnez un contrôle. Si vous modifiez la taille d'un contrôle, la propriété Height ou Width stocke la nouvelle hauteur ou largeur, alors que la propriété OldHeight ou OldWidth stocke la hauteur ou largeur précédente. Si vous spécifiez une valeur pour la propriété Left ou Top inférieure à zéro, cette valeur sera utilisée pour calculer la hauteur ou largeur du contrôle, mais une partie du contrôle ne sera pas visible sur la feuille.

    Si vous déplacez un contrôle d'une partie d'une feuille à une autre, la valeur de Height ou Width ne change que si vous dimensionnez le contrôle lors de son déplacement. Les valeurs des propriétés Left et Top du contrôle changent pour refléter la nouvelle position du contrôle par rapport aux bords de la feuille qui le contient.

    La valeur affectée à Height ou Width doit être supérieure ou égale à zéro. Pour la plupart des systèmes, la plage de valeurs recommandée est de 0 à +32.767. Des valeurs supérieures peuvent également fonctionner selon la configuration de votre système.
    Et puis il existe une tralée de programmes gratuits ou payants qui permettent de redimensionner une image. Tu choisis le dimension d'image que tu veux, tu la redimensionne en conséquence et tu ajustes les dimensions de ton contrôle image en conséquence.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 166
    Points : 94
    Points
    94
    Par défaut
    D'habitude, ce site aide énormément les personnes qui ont un besoin et ne fait pas comme d'autres sites avec des commentaires spécifiques

    Si j'ai posté ce besoin d'aide, c'est parce que je n'ai pas trouvé dans l'aide ni sur le web le problème que je rencontre

    Merci aux autres personnes de l'aide que vous pourrez m'apporter

    Cordialement,

  7. #7
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Je t'ai cité l'aide de VBA, la même aide de VBA qui est supposée être sur ton propre disque.

    La même aide de VBA qui te dit qu'il y a trois constantes fmPictureSizeMode

    1) fmPictureSizeModeClip
    Valeur numérique 0
    Découpe la partie de l'image plus grande que la feuille ou la page (par défaut).

    Ce n'est visiblement pas celle dont tu as besoin

    2) fmPictureSizeModeStretch
    Valeur numérique 1
    Étire l'image pour remplir la feuille ou la page. Cette définition déforme l'image dans le sens horizontal ou vertical.

    Si tu ne veux pas que ton image soit déformée, ce n'est visiblement pas celle dont tu as besoin

    3) fmPictureSizeModeZoom
    Valeur numérique 3
    Agrandit l'image mais ne la déforme ni dans le sens horizontal, ni dans le sens vertical.

    Si les dimensions de ton contrôle image ne respectent pas les mêmes proportions que ton image originale, elle risque d'être rognée.


    La même aide de VBA qui est supposée être sur ton propre disque te dit aussi que le contrôle image a une propriété Autosize

    La même aide de VBA qui te dit qu'il y a deux valeurs possibles pour la propriété Autosize:

    1) True

    ======================================> Redimensionne automatiquement le contrôle pour afficher la totalité de son contenu.

    Il faut quand même comprendre que quand le contrôle se redimensionne et qu'il n'est seul sur le User_Form, cela risque de ne pas être trop beau au final

    2) False

    Maintient la dimension du contrôle constante. Le contenu est découpé lorsqu'il dépasse la zone du contrôle (par défaut).

    Au final, cela ressemble pas mal à fmPictureSizeModeClip

    You compreniche maintenant ?

    Ceci dit, si VB6 a déjà été installé sur ta machine et que tu ne feras jamais passer ta macro sur un Office 64 bits, tu peux regarder si tu n'as pas aussi un contrôle PictureBox. C'est un contrôle plus puissant et plus souple qu'un contrôle image. Si mes souvenirs sont exacts, il a même ses propres barres de défilement.

    Mais, ce qui va causer le moins de problèmes d'ajustements, de redimensionnements, d'étirements et de rognages automatiques c'est ceci:

    Et puis il existe une tralée de programmes gratuits ou payants qui permettent de redimensionner une image. Tu choisis le dimension d'image que tu veux, tu la redimensionne en conséquence et tu ajustes les dimensions de ton contrôle image en conséquence.
    C'est-tu plus clair astheure ?
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 05/06/2008, 15h06
  2. Réponses: 1
    Dernier message: 24/05/2007, 21h20
  3. Insertion d'une photo dans un cadre d'objet dépendant
    Par Rock'Caliente dans le forum Access
    Réponses: 2
    Dernier message: 05/12/2006, 13h15
  4. [c#] chargement d'une texture a partir d'un objet Image
    Par elguignardo dans le forum DirectX
    Réponses: 2
    Dernier message: 29/03/2006, 09h18
  5. [Image] Taille d'une photo
    Par leloup84 dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 07/03/2006, 11h31

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