Inserer une image dans une cellule via un bouton 'Charger"

fdasneves Messages postés 4 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 6 mai 2008 - 5 mai 2008 à 15:35
 panthera26 - 16 avril 2013 à 16:58
Bonjour,

Je souhaiterais inserer des images dans un classeur excel dans des cellules precises.
Pour shematiser ce que je souhaite:
j'ai un onglet qui contien des cellules ou des groupes de cellules(fusion).
J'ai un bouton a coté de chaque cellule dans laquelle je souhaite inserer une image.
Je click sur le bouton, il me lance une boit de dialogue de type parcourir. Je cherche le fichier, je pointe dessus et click sur "ouvir"
Excel m'insere alors l'image selectionner dans la cellule se trouvant a coté du bouton ayant servi a l'appeler et me redimensionne l'image afin qu'elle s'integre dans la cellule.

Ce que je pense pouvoir faire:
-Creer le bouton d'appel
-Redimensionner  l'image pour l'inserer dans la cellule automatiquement .

ce qui veut dire qu il reste le plus dur a faire : la fonction qui ouvre une boite de dialogue "parcourir" pour trouver le fichier a inserer.

Quelqu'un sait il si cela est possible?

Merci a vous.

9 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
5 mai 2008 à 15:42
Salut,

Pour avoir une boite de dialogue, tu peux, si elle t'intéresse, utiliser ma source :
http://www.vbfrance.com/codes/COMMONDIALOG-AVEC-PREVIEW-IMAGE-USERCONTROL_42387.aspx

Elle te fait un preview image du fichier sélectionné

@++

(
zen69 Messages postés 584 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 29 avril 2010 1
5 mai 2008 à 17:22
Je ne crois pas qu'il soit possible d'inserer une image dans une cellule, en fait avec excel 2003 et - j'arrive a aligné une image sur une cellule mais de l'inséré dans la colonne je ne crois pas que ce soit faisable...

  zen69 aka Ortho Le Profett
  [site web]
fdasneves Messages postés 4 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 6 mai 2008
6 mai 2008 à 10:17
j'avance   , j ai trouvé ca. ca marche presque comme je veux.

Private Sub Insert_Click()
    Dim Emplacement As Range
    Dim Img As Object
    Dim ShapeObj As Shape
   
   If Application.Dialogs(xlDialogInsertPicture).Show Then
          
        Set Emplacement = Range("B152:F163")
       
        Set Img = ActiveSheet.DrawingObjects(ActiveSheet.Shapes.Count)
       
        With Img.ShapeRange
        '  .Name = "Cible"
           .LockAspectRatio = msoFalse
           .Left = Emplacement.Left
           .Top = Emplacement.Top
           .Height = Emplacement.Height
           .Width = Emplacement.Width
        End With
   
    Else
        MsgBox "Insertion d'image interrompue."
    End If
   
End Sub

Ce qui me gene c'est de mettre Set Emplacement = Range("B152:F163") , car j'inscrit la plage de cellule dans le dur.
je voudrais recuperer cette info directement par le click sur le bouton inserer.
En fait je me positionne sur le groupe de cellule (fusionné) dans laquelle je dois inserer l'image.
je click sur le bouton inserer et la ; la macro s'execute et insere l'image dans le groupe de cellule precedemment actif..

il ne me manque plus que ca pour finir! une idée?

meric a vous
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
6 mai 2008 à 16:20
Salut,

Tu as la possibilité d'utiliser un UserForm, sur lequel tu place un controôle qui se nomme RefEdit. Il sert justement à récupérer l'adresse d'une plage de cellules séléctionnée par l'utilisateur.

@++

(

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fdasneves Messages postés 4 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 6 mai 2008
6 mai 2008 à 16:46
j avoue que la je cale!

je vois en gros le principe mais je vois pas comment articuler tout ca.
j ajoutes le refedit dans le code que j'ai fait?

je continue a chercher !! (mais je veux bien un coup de main!!)

merci
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
6 mai 2008 à 16:58
Un p'tit exemple :

' DANS TON EVENEMENT  Insert_Click :

Private Sub MyInsert()
    Call MyInsert
End Sub

' DANS UN
MODULE

Option Explicit

Public AdresseRange As String

Public Sub MyInsert()
    Dim Emplacement As Range
    Dim Img As Object
    Dim ShapeObj As Shape
   
   ' ajoute ça :
   UserForm1.Show
   Set Emplacement =  Range(AdresseRange)
   
   If Application.Dialogs(xlDialogInsertPicture).Show Then
          
        'Set
Emplacement = Range("B152:F163")
       
        Set Img = ActiveSheet.DrawingObjects(ActiveSheet.Shapes.Count)
       
        With Img.ShapeRange
        '  .Name = "Cible"
           .LockAspectRatio = msoFalse
           .Left = Emplacement.Left
           .Top = Emplacement.Top
           .Height = Emplacement.Height
           .Width = Emplacement.Width
        End With
   
    Else
        MsgBox "Insertion d'image interrompue."
    End If
   
End Sub

'USERFORM (par
le menu Insertion) :

Option Explicit

' rajoute le
contrôle RefEdit aux contrôles de bases du UserForm, _
et insère le sur le Userform,
ainsi qu'un CommandButton (Caption = Valider)

Private Sub CommandButton1_Click()
    AdresseRange = Me.RefEdit1.Value
End Sub

~
<small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small><small> </small>

@++

<hr size ="2" width="100%" />(
fdasneves Messages postés 4 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 6 mai 2008
6 mai 2008 à 17:21
Merci!!

entre temps j ai manipulé un peu et j ai fait ca:

(a integrer au userform)

Private Sub CommandButton1_Click()
    Dim SelRange As Range
    Dim Addr As String
    Dim Emplacement As Range
    Dim Img As Object
    Dim ShapeObj As Shape
   
   
     'Get the address, or reference, from the RefEdit control.
     Addr = RefEdit1.Value

     'Set the SelRange Range object to the range specified in the
     'RefEdit control.
     Set SelRange = Range(Addr)
 
     'Unload the userform.
     Unload Me
    
     If Application.Dialogs(xlDialogInsertPicture).Show Then
    
     
     Set Emplacement = SelRange
       
        Set Img = ActiveSheet.DrawingObjects(ActiveSheet.Shapes.Count)
       
        With Img.ShapeRange
        '  .Name = "Cible"
           .LockAspectRatio = msoFalse
           .Left = Emplacement.Left
           .Top = Emplacement.Top
           .Height = Emplacement.Height
           .Width = Emplacement.Width
        End With
   
    Else
        MsgBox "Insertion d'image interrompue."
    End If
    
    
End Sub

et j appelle le user form avec le bouton "insert pic" dans le tableau excel.

et ca marche!!

Merci pour ton aide Mortalino!
Baaat Messages postés 1 Date d'inscription samedi 25 juillet 2009 Statut Membre Dernière intervention 25 juillet 2009
25 juil. 2009 à 23:16
Salut, je suis interessé par vos échanges mais je n'ai pas trouvé exactement ce dont j'ai besoin, bien que ca ressemble beaucoup à ce que fait fdasneves.

Je veux inserer des images dans un classeur excel en font de commentaires de cellules precises.
J'ai moi aussi un bouton a coté de chaque cellule dans laquelle je souhaite ajouter un commentaire avec une image en fond.
Je click sur le bouton, il me lance une boite de dialogue de type parcourir. Je cherche le fichier, je pointe dessus et click sur "ouvir"
Excel m'insere alors l'image selectionnée dans le commentaire de la cellule se trouvant a coté du bouton et me redimensionne l'image afin qu'elle s'integre dans la cellule.

Je sais insérer une image précise en font de commentaire d'une cellule précise:
Sub Ajoutimage()
With Range("A1")
.AddComment
.Comment.Shape.Fill.UserPicture "C:\Image.jpg"
End With
End Sub
Mais je veux que l'utilisateur futur choisisse lui-meme par une boite de dialogue la photo à insérer.

Si quelqu'un pouvait m'aider ca serait sympa.
BONJOUR

VOILA JE COMMENCE LE VBa ET J AI DIFFICULTE A METTRE UNE IMAGE DANS UNE CELLULE

J'ai créer un userform puis un bouton ajouter une photo,à coté une image1
quel code je doit mettre pour ouvrir mon dossier le disque dur ou se trouve les images

et dans images pour voir la photo

et ensuite sur la feuille de l'onglet x j ai une cellule AC ou je doit mettre une photo j'ai fait un activex incorporer mais ça pas l'être ça

comment dois je procéder merci à vous
Rejoignez-nous