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

Excel Discussion :

Insérer une photo à l'aide d'un bouton dans une cellule fusionnée


Sujet :

Excel

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 149
    Points : 63
    Points
    63
    Par défaut Insérer une photo à l'aide d'un bouton dans une cellule fusionnée
    Bonjour,

    Je dispose d'une cellule AF13 qui est une cellule fusionnée.
    Elle a le format avoisinant celui d'une photo d'identité, en pixel, ça donne 97 de large par 116 de haut. Cette cellule fusionnée comporte une bordure noire d'un pixel tout autour.

    En dessous de cette photo, je souhaiterai rajouter un bouton "Parcourir..." qui lorsque je clique dessus, me propose de charger une photo à l'intérieur de la cellule fusionnée AF13 en préservant la bordure d'un pixel noire tout autour.

    Bien entendu, l'image chargée est déjà à la bonne dimension.
    Comment pourrais-je faire cela je vous prie ?

  2. #2
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 149
    Points : 63
    Points
    63
    Par défaut
    Ou alors, si c'est trop compliqué, peut-être juste un bout de code qui indique le chemin jusqu'à l'image à insérer dans la cellule ?

    L'idée est que je n'ai pas à redimensionner l'image à la main et qu'elle prenne la taille de la cellule...

  3. #3
    Membre éprouvé Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Points : 973
    Points
    973
    Par défaut
    Bonjour
    Je crois pas que tu puisse attacher une image a une cellule.
    J'ai déjà fait ce que tu demande mais j'arrive pas à remettre la main dessus, trop bien ranger.
    La solution avait été d'inserer un champs images activeX et un bouton "parcourir".
    Sur clic de parcourir, j'ouvrais l'explorateur pour aller chercher l'image qui prenait les bonnes dimensions lors de l'insertion dans le champs. On pouvait alors joué avec VB pour definir les différentes propriétés de l'image (bordure, couleur....).
    Ha enfin retrouvé.
    Cette version n'as pas été finalisé car invalider par mon boss mais l'esprit y est. Si cela peut te mettre sur la voie.
    Il faut cliquer sur sommaire car la photo était pour moi dans un userform, puis les bouton bleu sur la gauche du formulaire.
    Fichiers attachés Fichiers attachés

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 149
    Points : 63
    Points
    63
    Par défaut
    Bonjour,

    Merci beaucoup pour votre aide mais je n'arrive pas à exploiter le code que vous m'avez mis en exemple. Je n'ai pas les compétences nécessaires pour la compréhension (je ne comprends pas, à la base, comment fonctionne votre fichier c'est pour dire...).

    Je pensais qu'il existait un petit morceau de code (sans passer par des boutons) afin d'indiquer le chemin d'une image à insérer dans une cellule...

    Je sens que je vais galèrer.

  5. #5
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 149
    Points : 63
    Points
    63
    Par défaut
    J'ai beaucoup farfouillé sur le net, et j'ai trouvé ce bout de code.
    Pensez-vous que je puisse le faire fonctionner ?

    Pour le moment, je n'y arrive pas trop... Vous avez des idé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
    Option Explicit 
     
    Public Const CheminImage As String = "C:\Documents and Settings\MaPhoto.JPG"  
     
    Sub InsertPicture() 
    Dim MonImage As Picture 
     
    Set MonImage = ActiveSheet.Pictures.Insert(CheminImage) 
    With MonImage.ShapeRange 
    .LockAspectRatio = msoFalse 
    .Height = ActiveCell.Height 
    .Width = ActiveCell.Width 
    End With 
     
    End Sub

  6. #6
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 149
    Points : 63
    Points
    63
    Par défaut
    J'ai trouvé un autre code. Il permettrait d'attacher une image à une cellule, mais toujours le même problème, je ne comprends pas comment le déclencher...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Macro1()
        Dim Photo As Variant
        Dim Gauche, Sommet, Largeur, Hauteur As Single
     
        Photo = Application.GetOpenFilename("Images JPEG (*.jpg), *.jpg")
        Gauche = Range("C2").Left
        Sommet = Range("C2").Top
        Largeur = Range("C2").Width
        Hauteur = Range("C2").Height
     
        If Photo <> False Then
            Feuil1.Shapes.AddPicture Photo, True, True, Gauche, Sommet, Largeur, Hauteur
        End If
    End Sub
    Quelqu'un aurait une idée ?

  7. #7
    Membre éprouvé Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Points : 973
    Points
    973
    Par défaut
    bonjour
    Pour déclencher la macro ALT+F8 et choisir macro1 à executer. Je vous conseille de remplacer le "feuil1" par "activesheet", ceci collera l'image sur la feuille active et non sur la feuille dont le codename est feuil1

    Par la suite, si elle fonctionne comme vous le desirez, vous pourrez créer un bouton qui déclenche la macro ou un raccourci clavier. Je l'ai tester et l'image se colle bien en C2. Le code est à modifier comme suit pour couvrir une cellule fusionné
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Gauche = Range("c2").Left
        Sommet = Range("c2").Top
        Largeur = Range("c2:e2").Width
        Hauteur = Range("c2:d4").Height

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 652
    Points : 1 116
    Points
    1 116
    Par défaut
    Bonjour,

    Ci joint un exemple à adapter à ton contexte, de fiche du personnel avec photo du salarié dans la cellule B1( aux dimensions standard) :
    plusieurs formats (jpg, png...) sont pris en compte

    la macro insère une bordure autour de la photo

    La macro se déclenche par validation du code du salarié (worksheet_change) en A1. le code correspond au nom de la photo

    pour voir le code : module feuille machin_max

    remarque télécharger le zip et "dézipper"et non l'ouvrir directement
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/03/2014, 22h38
  2. Réponses: 3
    Dernier message: 05/02/2010, 03h45
  3. Réponses: 1
    Dernier message: 26/09/2008, 16h38
  4. Réponses: 3
    Dernier message: 04/07/2008, 12h00
  5. Réponses: 3
    Dernier message: 30/04/2007, 12h22

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