Copier une image dans la cellule active

Résolu
ESCOUGER Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   -  
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   - 20 oct. 2011 à 09:58
Bonjour,
Je souhaiterais ecrire une macro déclenchée par un clic sur une image, qui copierait cette même image dans la cellule active de ma feuille.
Est-ce possible et si oui comment faire?
Merci d'avance de vos conseils



A voir également:

3 réponses

UsulArrakis Messages postés 7405 Date d'inscription   Statut Contributeur Dernière intervention   3 190
 
quel logiciel et quelle version ?
si c'est pour excel : on ne peut pas mettre d'image dans une cellule
0
ESCOUGER Messages postés 31 Date d'inscription   Statut Membre Dernière intervention  
 
C'est en effet pour excel, mais il s'agit plutôt dune forme que d'une image.

J'ai inseré une forme dans ma feuille, et j'ai assigné une macro à cette forme. Ce que je souhaite faire est de recopier cette forme à l'endroit de la cellule active.
Exemple: Je selectionne la cellule A1, puis je clique sur ma forme qui se situe ailleurs. Cela déclenche une macro à qui je demande de copier cette forme à l'endroit de la cellule active soit A1. (Je précise qu'il s'agit de toutes petites formes (sorte d'icônes) qui sont des repaires de balisages de sentiers de randonnée.
0
ESCOUGER Messages postés 31 Date d'inscription   Statut Membre Dernière intervention  
 
Je peux vous transmettre mon tableau si çà peut aider, mais ne sait pas comment faire?
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 264
 
Bonjour,

Un exemple :
Private Sub Image1_Click()
    ActiveSheet.Shapes("Image1").Copy
    ActiveSheet.Paste
    Selection.ShapeRange.Left = ActiveCell.Left + 2
    Selection.ShapeRange.Top = ActiveCell.Top + 2
End Sub


pour déposer un fichier : cijoint.fr et coller ici le lien fourni.

eric
0
ESCOUGER Messages postés 31 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup Erilic, çà marche exactement comme je le voulais
Problème résolu 100%
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 264
 
ok :-)
n'oublie pas de mettre en résolu
eric
0
ESCOUGER Messages postés 31 Date d'inscription   Statut Membre Dernière intervention  
 
Encore une précision pour améliorer mon code:
Comment récupérer dans une variable le nom de la forme sur laquelle j'ai cliqué.
exemple: Signe_balisage= ActiveSheet.Shapes.Name (sauf que name n'est pas le bon code)
Merci
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 264
 
Heuuu, bonne question...
Je ne sais pas répondre à ta question sinon que l'évènement click porte son nom.

Par contre, les objets créés il vaut mieux les nommer lors de la création, comme ça tu connais leur nom.
Exemple court :
Private Sub Image1_Click()
    ActiveSheet.Shapes("Image1").Copy
    ActiveSheet.Paste
    Selection.Name = "forme12"
    Selection.ShapeRange.Left = ActiveCell.Left + 2
    Selection.ShapeRange.Top = ActiveCell.Top + 2
End Sub

Bien sûr il faut un nouveau nom pour chaque forme.

eric
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 759
 
Salut Eriiic,
ESCOUGER,

Pour récupérer le nom d'un Shape (j'ai bien dit Shape, ce code ne fonctionne pas avec les objets issus de la boîte à outils contrôle) on peux utiliser Application.Caller.
Il suffit d'affecter cette même macro aux divers shapes de la feuille :
Sub test()
MsgBox Application.Caller
End Sub

Ce qui, appliqué à la macro d'Eriiic ci-dessus nous donne :
Sub CopierShapeDansCellActive()
Dim NomShape As String

NomShape = Application.Caller
ActiveSheet.Shapes(NomShape).Copy
ActiveSheet.Paste
Selection.ShapeRange.Left = ActiveCell.Left + 2
Selection.ShapeRange.Top = ActiveCell.Top + 2
End Sub

Ne reste qu'à affecter (manuellement) cette macro à toutes les formes (de type Shape!) de la feuille.
0