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 :

Ouvrir une image en fonction d'une cellule via le VBA [XL-2019]


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
    Chargé d'affaire
    Inscrit en
    Décembre 2019
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2019
    Messages : 119
    Par défaut Ouvrir une image en fonction d'une cellule via le VBA
    Bonjour à tous ;

    Depuis quelque jour je cherche un moyen d'ouvrir une image (comme si on cliquait dessus pour l'ouvrir) grâce a un bouton dans mon tableau excel.

    Afin d’être plus claire je vais donner un exemple:

    Dans ma cellule "A1" j'ai le nom (titre) de mon image (exemple "IMG1")
    Dans la cellule "B1" j'ai mon bouton (créé sous l'onglet développeur)
    Je souhaite tout simplement que quand je clique sur le fameux bouton qui comprend le code VBA qui a donc la particularité de lire la contenue de la cellule "A1" soit "IMG1", il m'ouvre comme par magie l'image qui a le même nom que la cellule "A1".
    Pour information il y aura 2845 boutons (une par ligne) le code doit donc être répétable (comme quand on étend une suite de cellules "C1"=1 puis on étend jusqu’à 10 par exemple)
    Pour plus d'explication je travaille sur la création d'un dossier excel qui ressent toutes les informations des poteaux incendie du secteur et je souhaite tout simplement que mes chefs (ayant le dossier sur serveur) puissent cliquer sur un bouton et voir le poteau incendie en images.
    Je vous passe le moment où je fais mes excuses pour le peux de compétence que je doit avoir par rapport à vous.

    toutefois je vous remercie énormément pour votre aide prochaine!

    je suis bien sur disponible pour vous fournir plus d'informations si besoin.

    Merci à vous tous.

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour
    je sais pas si c'est ce que tu cherches :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub insertimage()
    With Sheets("feuil1")
        Image = "C:\Users\DELL\Desktop\Personnel\" & .Cells(1, 1) & ".jpg"
        .Shapes.AddPicture Image, 0, 1, .Cells(3, 3).Left, .Cells(3, 3).Top, 70, 50
    End With
    End Sub
    voir cette discussion

  3. #3
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2019
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2019
    Messages : 119
    Par défaut
    Bonjour BENNASR;

    Merci pour ta réponse super rapide! j'ai donc testé ton code mais après un débogage il m’affiche ce qu'il suit.

    Nom : code.PNG
Affichages : 2443
Taille : 9,4 Ko

    Je suis désolé mais je ne comprend pas le fonctionnement de celle-ci, pourrais tu m'expliquer comment l'appliquer a mon tableau? STP en espérant que ton code fonctionnera a merveille

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    supprimer cette ligne et voir ce que ça donne

  5. #5
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2019
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2019
    Messages : 119
    Par défaut
    Citation Envoyé par BENNASR Voir le message
    bonjour
    je sais pas si c'est ce que tu cherches :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub insertimage()
    With Sheets("feuil1")
        Image = "C:\Users\DELL\Desktop\Personnel\" & .Cells(1, 1) & ".jpg"
        .Shapes.AddPicture Image, 0, 1, .Cells(3, 3).Left, .Cells(3, 3).Top, 70, 50
    End With
    End Sub
    voir cette discussion

    Rien ne ce passe

  6. #6
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    l’extension de ton image est .jpg ??
    le code fonctionne parfaitement chez moi !!

  7. #7
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2019
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2019
    Messages : 119
    Par défaut
    Oui mon image est bien une .JPG mais quand je supprime la ligne (celle en jaune rien ne ce passe).

  8. #8
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    remettre la partie en jaune
    si ça fonctionne pas joindre un petit fichier test sans données confidentielles

  9. #9
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 171
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Nom : aa.png
Affichages : 2332
Taille : 11,4 Ko

  10. #10
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2019
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2019
    Messages : 119
    Par défaut
    J'ai essayer ton code mais malheureusement rien ne ce passe (autre qu'un code d'erreur "erreurs de compilation"), il est fort possible que j'ai mal utiliser ton code sur excel puisque je suis malheureusement pas aussi Ford que vous toute fois merci énormément pour votre aide. Ci-joint un screen du code.Nom : Screenshot_1.png
Affichages : 2340
Taille : 46,2 Ko

  11. #11
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 369
    Par défaut
    Bonjour,

    Dans mon exemple, en colonne A tu dois avoir les valeurs textuelles de l'image recherchée. C'est cette valeur qui correspond au nom de l'image en question à aller chercher.
    En colonne B se situeront toutes tes images. C'est sur cette colonne que tu dois "Set" la Range de ton image.j

    Tu peux supprimer le contenu de la fonction TestImage et le remplacer par celui qui se situe au-dessus. Ta fonction TestImage sera ainsi donc adaptée à tes besoins.
    Rajoute ainsi "Worksheets("TR2") " devant " Cells(i,2)" et " Cells(i,1)"

    Par ailleurs, je te conseille de tester pas à pas (F8) et de vérifier que les valeurs prises par les variables sont cohérentes (voir existantes tout simplement). De cette façon, tu pourras nous communiquer plus aisément l'erreur qui est à l'origine du non fonctionnement du code.

  12. #12
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2019
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2019
    Messages : 119
    Par défaut
    Rebonjour

    J'ai essayer ton premier code seule sans résultat il me mets l'erreur suivante : Nom : t2.png
Affichages : 2323
Taille : 11,9 Ko Nom : t4.png
Affichages : 2349
Taille : 28,1 Ko.

    Je vous joint un support visuel et quelle que information afin de bien cerné l'action que je souhaite faire.
    Désolé pour le temps de réponse assez long mais j'ai testé plusieurs configuration des codes (tous en échec).
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  13. #13
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 369
    Par défaut
    Cette partie du code ne correspond pas à ta situation.
    Ce que toi tu souhaites, si j'ai bien compris, c'est d'avoir dans une colonne le nom des Images, et dans une autre les images associées.

    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 TestImage()
    Dim Filename as String, FilePath as String
    Dim i as Integer
    FilePath = D:\ .... 'Ton chemin à toi'
     
    For i = 1 to 5
    Set PicRange = Worksheets("TR1").Cells(i,2)
    'La Colonne B qui affichera tes images'
     
    Filename = FilePath & Cells(i,1) & ".jpg"
    'D:\... & "le nom de l'image dans ta première colonne à la ligne I"'
     
    With PicRange
    Set Pic = Worksheets("TR1").Shapes.AddPicture(Filename,msoFalse,msoTrue,.Left,.Top,-1,.RowsHeight)
    'Paramètres de l'image. Tu peux trouver tout ça sur internet pour plus de personnalisation'
    End With
     
    Next i
     
    End Sub
    Il faut bien évidemment que toutes tes images soient stockées dans le bon chemin ! Essaie d'y mettre 5 images appelées respectivement : Image1, Image2, Image3, Image4, Image5 - et de la cellule A1 à A5 tu écriras : Image1, Image2, Image3, Image4, Image5 - dans ta feuille TR1 bien évidemment.

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

Discussions similaires

  1. [XL-2007] Ouvrir un fichier a partir d une cellule excel sous VBA
    Par Fandeliza dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/02/2017, 17h36
  2. [LibreOffice][Tableur] [Basic] Ecrire une fonction dans une cellule via une macro
    Par xr dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 01/10/2016, 16h09
  3. [XL-2010] Fonction Excel - Colorer une cellule via 2 paramètres
    Par lovebo dans le forum Excel
    Réponses: 1
    Dernier message: 13/01/2016, 15h29
  4. [XL-2010] Ecriture d'une fonction dans une cellule via VBA
    Par Seb-Office dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 11/11/2010, 17h39
  5. Ouvrir une form via une ComboBox
    Par Conficius dans le forum Composants VCL
    Réponses: 3
    Dernier message: 05/11/2005, 16h11

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