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 :

Ratio image en Useform


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2010
    Messages : 58
    Par défaut Ratio image en Useform
    Bonjour le Forum

    je vous mets en copie le fichier sur lequel je travaille
    je voudrais appliquer un ratio image pour qu'elles s'affichent plein cadre sans devoir modifier leurs tailles.
    J'ai bien un autre exemple ou les images s'affichent dans des cellules, mais pas dans un Useform et je ne sais comment l'adapter.
    Pourriez vous m'aider et éventuellement décrire la procédure?
    Merci
    Ps les images de la feuille "Reines" ne sont que les miniatures de celles qui devront s'afficher dans l'UseForm. les originales sont stockées ailleurs
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour papy_polo67,
    Je ne suis pas sûre que je pourrai répondre à ta question, mais je te donne un conseil quand même : évite les pièces jointes dans tes messages, peu de membres les ouvrent. Pour avoir plus rapidement une réponse, utilise donc la copie d'écran pour expliquer ton problème. Voici le pourquoi du comment : https://www.developpez.net/forums/d8...s-discussions/
    A bientôt

  3. #3
    Membre éclairé
    Homme Profil pro
    aucune
    Inscrit en
    Août 2019
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Août 2019
    Messages : 59
    Par défaut
    Bonjour le forum
    Bonjour papy_polo
    Edit : Bonjour riaolle (pas rafraîchi)
    De mémoire, je pense qu'il te faut "jouer" avec la propriété PictureSizeMode du contrôle Image.
    Bonne journée et pensez toutes & tous à vous protéger
    @+

  4. #4
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2010
    Messages : 58
    Par défaut re
    Voila les codes
    Pour la recherche et l'affichage de l'image du personnage et l'autre pour affichage du blason
    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
    35
    36
    37
    38
    39
    40
    41
    Private Sub CommandButton2_Click()
                                              'https://www.youtube.com/watch?v=KaAsd8n1u98
    'Double click Bouton Rechercher
    If Not ComboBox1.Value = "" Then
     
        Dim MonFichier As String
        Dim MonBlason As String
     Nom = ComboBox1.Value
    MonFichier = ("C:\Users\Polo\Documents\Fiches Généalogie\Dossier Image Reines de France\") & Nom & (".jpg")
    MonBlason = ("C:\Users\Polo\Documents\Fiches Généalogie\Dossier Image Reines de France\Blason\") & Nom & (".jpg")
     
        Dim no_ligne As Integer
     
            no_ligne = ComboBox1.ListIndex + 2
            TextBox1.Value = Cells(no_ligne, 1).Value
            ComboBox1.Value = Cells(no_ligne, 3).Value
            TextBox2.Value = Cells(no_ligne, 4).Value
            TextBox3.Value = Cells(no_ligne, 5).Value
            TextBox4.Value = Cells(no_ligne, 6).Value
            TextBox7.Value = Cells(no_ligne, 7).Value
     
            Else
        End If
     
            If FichierExiste(MonFichier) = True Then
            'MsgBox "Le fichier existe..."
            Image1.Picture = LoadPicture(MonFichier)
        Else
            MsgBox "Le fichier image n'existe pas..."
           Image1.Picture = LoadPicture
     
        End If
            If FichierExiste(MonBlason) = True Then
            'MsgBox "Le fichier existe..."
            Image2.Picture = LoadPicture(MonBlason)
        Else
            MsgBox "Le fichier image n'existe pas..."
           Image2.Picture = LoadPicture
     
        End If
    End Sub
    Et le code qui devrait vider les cases mais qui apparemment ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Function FichierExiste(MonFichier As String)
     
     If Len(Dir(MonFichier)) > 0 Then '( attention avant le 0 ajouter un chevron ">")
          FichierExiste = True
       Else
          FichierExiste = False
       End If
    End Function

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Image1_BeforeDragOver(ByVal Cancel As MSForms.ReturnBoolean, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As MSForms.fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)
     
    End Sub

  5. #5
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Par défaut
    Bonjour
    Citation Envoyé par papy_polo67 Voir le message
    Voila les codes ...
    Merci de modifier ton post avec les balises CODE :
    https://www.developpez.net/forums/d3...-balises-code/
    http://club.developpez.com/aidenouve...es/Balises.gif

  6. #6
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2010
    Messages : 58
    Par défaut Affichage de la version
    j'ai bien lu qu'il fallait afficher la version de Excel, mais comment le faire?
    Pour ma part c'est 2019
    Merci

  7. #7
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Et le code qui devrait vider les cases mais qui apparemment ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Function FichierExiste(MonFichier As String)
     
     If Len(Dir(MonFichier)) > 0 Then '( attention avant le 0 ajouter un chevron ">")
          FichierExiste = True
       Else
          FichierExiste = False
       End If
    End Function
    Attention, ici tu utilises une "Function" et pas un "Sub. Voici 2 tutos :


    Function ne permet pas de "faire quelque chose",mais retourne une valeur.
    Ici, dans ton code par exemple, il retourne VRAI si Len(Dir(MonFichier)) > 0, FAUX sinon. Càd, il retourne VRAI si le nom du fichier existe, FAUX sinon. En aucun cas le code vide des cases.


    j'ai bien lu qu'il fallait afficher la version de Excel, mais comment le faire?
    Pour ma part c'est 2019
    Quand tu créés la discussion, il y a une liste déroulante où tu peux choisir la version d'Excel. Pour la prochaine fois

  8. #8
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2010
    Messages : 58
    Par défaut
    ok, en fait cela n'a pas trop d'importance dans mon module.
    Ce qui me préoccupe le plus c'est ou insérer un code pour que le ratio s'applique à la taille de l'image afficher en Image1 et Image2
    Code pour Image 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Explicit
    Sub AfficheImage()
        With Sheets("Reines")
            On Error Resume Next
            .Shapes("Image1").Delete
            On Error GoTo 0
            If Dir(.Range("A1").Text) <> "" Then place_l_image_dans .Range("G4:I18"), .Range("A1").Text       (((c'est la que je ne sais pas comment faire, ce code est valable pour une plage de cellule et non un UseForm)))
        End With
    End Sub
    '
    '
    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
    Sub place_l_image_dans(rng As Range, chemin As String, Optional nom As String = "MonFichier")
        Dim Ratio#, W#, H#
        With rng.Parent.Pictures.Insert(chemin)
            .Name = nom
            .ShapeRange.LockAspectRatio = msoTrue    ' lock le ratio indéformable
            Ratio = .Width / .Height     ' calcul ratio de l' image
            W = rng.Width       ' width  range
            H = rng.Height      ' height range
            '--------------------------------------------------------------------------------------------
            '((((((on a bloqué l'aspect ratio on ne redimensionnera qu'un axe  le width ou le height!!!))))
            '--------------------------------------------------------------------------------------------
            If (W / H < Ratio) Then    'si ratio (rng) < que ratio image alors
                .Width = W - 2    'width image=width rng
            Else 'sinon
                .Height = H - (2 / Ratio)    ' height image =height rng
            End If
            .Left = rng.Left + ((rng.Width - .Width) / 2)    'on centre horizontalement
            .Top = rng.Top + ((rng.Height - .Height) / 2)    ' on centre verticalement
            .Placement = 1
        End With
    End Sub

Discussions similaires

  1. [MooTools] ratio image avec bumpbox (mootools)
    Par stefart dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 29/11/2009, 14h15
  2. ratio image avec bumpbox (mootools)
    Par stefart dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 04/11/2009, 10h41
  3. [PPT-2000] extraire une image d'une diapo vers un useform
    Par Fred C dans le forum VBA PowerPoint
    Réponses: 2
    Dernier message: 26/05/2009, 11h01
  4. [ImageMagick] Ratio d'une image
    Par UN|X` dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 03/07/2007, 13h10

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