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 :

Insertion d'image dans excel


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 Insertion d'image dans excel
    Bonjour
    Je sais que le sujet a été abondament discuté mais je ne trouve pas mon bonheur
    Je voudrais sur une page excel par la commande F9 afficher une image.jpg qui est stockée dans un dossier Image.
    Juste ça mais tous les codes trouvés àa et la ne fonctionnent pas
    Je ne suis pas un expert donc si possible une petite explication serais très utile
    merci

  2. #2
    Rédacteur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2013
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 1 022
    Par défaut
    Bonjour,
    Je n'ai pas tout compris à votre question, mais voici des informations qui peuvent vous être utilises :

    Pour "re-programmer" la touche "F9" pour lancer une macro personnelle, (ici elle s'appelle "ImporterImage") :
    Il faut créer un événement, par exemple dans ThisWorkbook (pour l'activer sur toutes les feuilles du classeur, mais on peut le faire sur une feuille spécifique si besoin) :
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
    Application.OnKey "{F9}", "ImporterImage"
    End Sub

    Puis créer un module et y mettre le code de la macro "ImporterImage" :
    Ici le chemin de l'image est connu et elle sera placée où se trouve le curseur, remplacez "C:\Users\OTT\Pictures\Capture.JPG" par le bon chemin.
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function ImporterImage()
    ActiveSheet.Pictures.Insert("C:\Users\OTT\Pictures\Capture.JPG").Select
    ActiveCell.Select
    End Function

    Je n'ai pas tout compris mais vous voulez peut-être mettre une image d’arrière-plan sur la feuille de calcul dans ce cas le code est :
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function ImporterImage()
    ActiveSheet.SetBackgroundPicture Filename:="C:\Users\OTT\Pictures\Capture.JPG"
    ActiveCell.Select
    End Function

    Mais vous souhaitez peut-être que l'utilisateur sélectionne l'image ?
    Ou que l'image soit dans une cellule déterminée ?
    Et quid des dimensions de l'image : faut-il les ajuster à une cellule, à une dimension spécifique, au format d'origine ?
    Tout est possible mais il faudrait nous indiquer ce que vous souhaitez plus précisément.

    Si vous n'avez rien compris à mes codes car vous débutez je vous conseille cette documentation : http://laurent-ott.developpez.com/tu...el-vba-tome-1/

    Bonne continuation.

  3. #3
    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
    En fait je me suis très mal exprimé j'ai mélanger deux exemples pour au final ne faire rien de bon
    Je reprends
    Sur une feuille excel (Tableau de commande) à partir d'un menu déroulant on affiche un nom en A2
    Ce non sert avec une macro d'aller rechercher dans un dossier image la photo correspondante et l'afficher dans une zone définie
    Le nom en A2 sert aussi à rapatrier, vers une zone définie de "tableau de commande", les informations contenues dans differentes cellules de la page correspondante au nom donné en A2
    J'ai mis en pj un zip content une representation de ce que pourrait etre le tableau de commande ainsi que les images qui serviront à l'exemple
    Merci
    PS l'affichage de l'image et des textes liés pourra se faire dès la recherche par le menu déroulant, par un bouton dédié ou par F9 (commande qui activera la macro)
    Fichiers attachés Fichiers attachés

  4. #4
    Rédacteur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2013
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 1 022
    Par défaut
    Bonjour,
    J'ai créé une feuille "Données" avec un tableau nommé "Données" à trois colonnes :
    Nom : Le nom de l'animal
    Description : le texte descriptif
    Image : le chemin et le nom du fichier jpg

    Sur la feuille "Tableau de commande" en "B1" j'ai une liste de validation qui pointe sur le tableau "Données" colonne "Nom". Source =INDIRECT("Données[Nom]")
    En B2 je recherche le fichier image dans le tableau par une formule : =RECHERCHEV(B1;Données;3;FAUX)
    En F4 je recherche le descriptif dans le tableau par une formule : =RECHERCHEV(B1;Données;2;FAUX)

    J'ai créé une gestion d'événement "sur changement" de la feuille (donc à chaque changement dans la liste de validation) :
    Pour supprimer l'ancienne image et y mettre l'image demandée.

    Code VBA : 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
    Option Explicit
     
    '-------------------------------------------------------------------------------
    Private Sub Worksheet_Change(ByVal Target As Range)
    '-------------------------------------------------------------------------------
    ' Déclaration des variables:
    Dim Sh As Shape
    Dim Fichier As String
     
    ' Efface l'ancienne image:
    For Each Sh In ActiveSheet.Shapes
        If Sh.Name = "MonImage" Then Sh.Delete
    Next Sh
     
    ' Récupère l'image:
    Fichier = ThisWorkbook.Sheets("Tableau de commande").Range("B2")
    ' Si elle n'exite pas le signale
    If Fichier = "" Or Dir(Fichier) = "" Then
        MsgBox "Le fichier image " & Fichier & " n'existe pas."
    Else
        ' Sélectionne la cellule où importer l'image:
        Range("B6").Select
        ' Y insert l'image:
        ActiveSheet.Pictures.Insert(Fichier).Select
        ' Désactive le respect du ratio de l'image d'origine:
        Selection.ShapeRange.LockAspectRatio = msoFalse
        ' Donne la taille de la cellule (des cellules fusionnées) à l'image:
        Selection.ShapeRange.Height = ActiveCell.CurrentRegion.Height
        Selection.ShapeRange.Width = ActiveCell.CurrentRegion.Width
        ' Nomme l'image "MonImage" pour pouvoir la supprimer ultérieurement:
        Selection.ShapeRange.Name = "MonImage"
    End If
     
    ' Sélectionne la liste de validation:
    Range("B1").Select
     
    End Sub

    Le fichier exemple (il faut ajuster les adresses des cellules à votre présentation) : Classeur1.xlsm


    Bonne continuation.

  5. #5
    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 Indirect
    [QUOTE=laurent_ott;11967062]Bonjour,
    Sur la feuille "Tableau de commande" en "B1" j'ai une liste de validation qui pointe sur le tableau "Données" colonne "Nom". Source =INDIRECT("Données[Nom]")
    [CODE=VBA]Option Explicit

    Merci je regarde comment la macro est faite pour essayer de la comprendre
    En tout cas merci
    Petite rectification
    Ma recherche ne se fait pas par menu déroulant mais par affichage aléatoire défini par cette formule "=INDEX(B4:B15;ALEA.ENTRE.BORNES(2;NBVAL(B4:B15));1)" qui est lancée par F9
    De ce fait la RECHERCHEV(B1;Données;3;FAUX) en B2 ne fonctionne pas.

    Dois je passer obligatoirement par un menu déroulant? cela n'aurait plus de sens sur l'affichage aléatoire du départ


    J'ai bien trouvé les RECHERCHV en B2 et F4 mais je ne trouve pas le Indirect
    Ou est il caché?

    Je continu et essais de comprendre la suite
    Merci

  6. #6
    Rédacteur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2013
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 1 022
    Par défaut
    Bonjour,
    J'ai mis un événement à l'ouverture du fichier pour programmer la touche F9 sur une macro personnelle.
    J'ai laissé en B1 la liste de validation, au cas où, vous pouvez la supprimer : Données / liste de validation /supprimer.

    Le fichier : Classeur1.xlsm

    Bonne continuation.

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/01/2022, 13h27
  2. insertion d'image dans une feuille EXcel
    Par Jacbour dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/08/2010, 20h19
  3. Insertion Image dans Excel
    Par Pascal Lob dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 15/09/2009, 20h26
  4. [VB6]Insertion image dans Excel
    Par mosquitout dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 12/04/2006, 16h30
  5. [JTable] Insertion d'images dans la première colonne
    Par cocolepelo dans le forum Composants
    Réponses: 2
    Dernier message: 29/11/2005, 15h17

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