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 :

Problème : Insérer dans une cellule provenant d'une image d'un userform


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2011
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 197
    Points : 50
    Points
    50
    Par défaut Problème : Insérer dans une cellule provenant d'une image d'un userform
    Bonjour à toutes et à tous,

    Je souhaiterai vous exposer mon problème car je ne trouve pas la solution.

    J'ai un userform qui trouve une image à partir d'une combobox. Ceci a été réussi. Par contre, je souhaiterai que l'image qui a été trouvée s'insère dans une cellule (qui est définie ou non au préalable).

    Cela est-il possible?

    Merci d'avance pour votre aide.

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Voilà l'esprit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    If rangedefinialavance<>true then
    ran=inputbox("file ton range")
    Range(ran).Select 
    Pictures.Insert(nomImage).Select 
    else
    Range("Tonrange").Select 
    Pictures.Insert(nomImage).Select 
    end if

  3. #3
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    Pour mettre l'image dans la cellule A10 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub ComboBox1_Click()
        [A10].Select
        ActiveSheet.Pictures.Insert (Me.ComboBox1.Value)
    End Sub
    A adapter à tes besoins.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  4. #4
    Membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2011
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 197
    Points : 50
    Points
    50
    Par défaut
    Merci pour vos réponses rapides.

    J'ai réussi à insérer l'image dans une cellule définie (la F13, comme je suis sûre qu'il n'y a rien dedans).
    Par contre j'ai 2 petits problèmes :

    1) J'ai une liste de mes valeurs de ma combobox, et j'aimerai que l'image soit positionné à côté de celle-ci (en disant par exemple si la valeur de la combobox = valeur de la cellule (A1), mettre l'image en B1

    2) L'image s'affiche en grand, est-il possible de la redimenssionner suivant la taille de la cellule qui sera choisie?

    Merci pour votre aide.

  5. #5
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    1) Il suffit de rechercher et de trouver le .row et .column pour avoir la référence avant de l'insérer.
    2)NE m'étant jamais posé la question je suis allé faire un petit tour sur l'explorateur d'objet (F2) et la classe range a des propriétés comme ColumnWidth et RowHeight.

  6. #6
    Membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2011
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 197
    Points : 50
    Points
    50
    Par défaut
    Merci pour ta réponse.

    1)Ce doit être dans une boucle ça non?

    2) Très bien je vais regarder ça également.

    Merci pour votre aide

  7. #7
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Dans ton combobox_Change... tu peux le faire avec .find, avec rechercheV/rechercheH ou avec une boucle et des if.. Comme tu le sens

  8. #8
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Je n'ai pas compris ta première question; peux-tu donner un exemple ? Est-ce que tu veux que les images soient les unes à côté des autres à partir de A1 ?
    Pour le seconde point :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub ComboBox1_Click()
        [F13].Select
        Set img = ActiveSheet.Pictures.Insert(Me.ComboBox1.Value)
        img.Height = [F13].Height
        'img.Width = [F13].Width
    End Sub
    La macro peut varier selon que tu veus que les proportions hauteur / largeur soient ou non conservées.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  9. #9
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    en disant par exemple si la valeur de la combobox = valeur de la cellule (A1), mettre l'image en B1
    Est-ce que tu veux dire que tu as des listes de noms (et de chemins) de fichiers sur ta feuille ?
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  10. #10
    Membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2011
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 197
    Points : 50
    Points
    50
    Par défaut
    Ce que je veux dire Daniel.C, c'est qu'effectivement j'ai la liste de mes valeurs de ma combobox dans la colonne A (ex : A1 : 10, A2 = 20, ...) et mes images ont leurs noms comme ceci 10.jpg, 20.jpg,...
    parce que là dans le cas présent je dois sélectionner la cellule où je souhaite insérer mon image.

    J'espère avoir été un peu plus claire.

    Merci pour ton aide

  11. #11
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Les images sont dans le dossier défini par "Chemin" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub ComboBox1_Click()
        Dim Chemin As String, C As Range
        Chemin = "C:\Users\Daniel\Documents\Donnees\Daniel"
        Set C = Cells.Find(Me.ComboBox1.Value, , , xlWhole)
        C.Offset(, 1).Select
        Set img = ActiveSheet.Pictures.Insert(Chemin & "\" & Me.ComboBox1.Value & ".jpg")
        img.Height = C.Height
        'img.Width = [F13].Width
    End Sub
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  12. #12
    Membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2011
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 197
    Points : 50
    Points
    50
    Par défaut
    ça fonctionne parfaitement, merci.

    J'ai simplement un dernier souci s'il te plait. Parfois, j'ai des images qui sont nommées 20_1.jpg, 20_2.jpg, etc...

    Est-il possible de dire : si 20....jpg est trouvé les afficher et choisir le bon?

    Merci en tout cas pour votre aide

  13. #13
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Oui, ça devrait fonctionner comme ça ou j'ai mal compris ?
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  14. #14
    Membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2011
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 197
    Points : 50
    Points
    50
    Par défaut
    En fait dans le cas présent, il faut que la valeur de la combobox soit la même que le nom du fichier. Mais il peut arriver que l'une des valeurs de la combobox possède plusieurs "choix".
    Exemple, je choisis 20 pour la valeur de la combobox mais je souhaite afficher l'image 20_2.
    Sinon une des solutions et d'ajouter une deuxième combobox pour les valeurs _1, _2, ... est-ce possible comme ça?

    Merci pour ton aide

  15. #15
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Sinon une des solutions et d'ajouter une deuxième combobox pour les valeurs _1, _2, ... est-ce possible comme ça?
    C'est possible. Une autre possibilité est que, après le choix "20" dans le premier combobox, la macro rende visible et remplisse ce second combobox avec les valeurs trouvées. Dis-moi ce que tu préfères.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  16. #16
    Membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2011
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 197
    Points : 50
    Points
    50
    Par défaut
    Les 2 solutions sont intéressantes, la deuxième éventuellement s'il trouve le fichier 20_2.jpg par exemple cela pourrait être intéressant je pense.

  17. #17
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Regarde le classeur joint.
    Fichiers attachés Fichiers attachés
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  18. #18
    Membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2011
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 197
    Points : 50
    Points
    50
    Par défaut
    Merci pour ton aide, mais malheureusement je ne comprends pas très bien le fonctionnement désolé :s

  19. #19
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Est-ce que ça fonctionne ? Il faut que tu changes la valeur de la variable "Chemin" pour la faire pointer sur le dossier contenant les images dans ces deux macros :

    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
    Private Sub ComboBox1_Click()
        Dim Chemin As String, C As Range, ResAdr As String
        Chemin = "C:\Users\Daniel\Documents\Donnees\Daniel\mpfe"
        Set C = Cells.Find(Me.ComboBox1.Value, , , xlPart)
        If Not C Is Nothing Then
            Me.ComboBox2.Clear
            ResAdr = C.Address
            Do
                If Left(C.Value, Len(Me.ComboBox1.Value)) = Me.ComboBox1.Value Then Me.ComboBox2.AddItem C.Value
                Set C = Cells.FindNext(C)
            Loop Until C.Address = ResAdr
            If Me.ComboBox2.ListCount > 0 Then
                Me.Height = 130
                Me.ComboBox2.Visible = True
            Else
                C.Offset(, 1).Select
                Set img = ActiveSheet.Pictures.Insert(Chemin & "\" & Me.ComboBox1.Value & ".jpg")
                img.Height = C.Height
            End If
        End If
        Unload Me
    End Sub
     
    Private Sub ComboBox2_Click()
        Set C = Cells.Find(Me.ComboBox2.Value, , , xlWhole)
        C.Offset(, 1).Select
        Chemin = "C:\Users\Daniel\Documents\Donnees\Daniel\mpfe"
        Set img = ActiveSheet.Pictures.Insert(Chemin & "\" & Me.ComboBox2.Value & ".jpg")
        img.Height = C.Height
        Unload Me
    End Sub
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  20. #20
    Membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2011
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 197
    Points : 50
    Points
    50
    Par défaut
    j'ai bien changé le chemin, malheureusement rien ne s'affiche. J'ai bien pointé vers le dossier des images 20_1, 20_2,... mais sans succès

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/01/2015, 08h27
  2. [XL-2003] macro copier plage une de cellules et l'insérer dans la cellule active
    Par grimou dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 06/05/2009, 23h42
  3. différencier une cellule vide d'une cellule nulle
    Par schwarzy2 dans le forum VB.NET
    Réponses: 4
    Dernier message: 02/09/2008, 13h50
  4. incrémenter une cellule jusqu'a une cellule variable
    Par derf3183 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 05/07/2006, 14h48
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

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