Copier une image dans la cellule active

Résolu/Fermé
ESCOUGER Messages postés 31 Date d'inscription lundi 3 décembre 2007 Statut Membre Dernière intervention 17 juillet 2019 - Modifié par ESCOUGER le 19/10/2011 à 10:53
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 - 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 vendredi 28 mars 2003 Statut Contributeur Dernière intervention 27 janvier 2022 3 182
19 oct. 2011 à 12:42
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 lundi 3 décembre 2007 Statut Membre Dernière intervention 17 juillet 2019
19 oct. 2011 à 16:08
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 lundi 3 décembre 2007 Statut Membre Dernière intervention 17 juillet 2019
19 oct. 2011 à 16:11
Je peux vous transmettre mon tableau si çà peut aider, mais ne sait pas comment faire?
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 209
19 oct. 2011 à 16:32
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 lundi 3 décembre 2007 Statut Membre Dernière intervention 17 juillet 2019
19 oct. 2011 à 16:59
Merci beaucoup Erilic, çà marche exactement comme je le voulais
Problème résolu 100%
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 209
19 oct. 2011 à 17:10
ok :-)
n'oublie pas de mettre en résolu
eric
0
ESCOUGER Messages postés 31 Date d'inscription lundi 3 décembre 2007 Statut Membre Dernière intervention 17 juillet 2019
19 oct. 2011 à 23:06
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 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 209
19 oct. 2011 à 23:54
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
20 oct. 2011 à 09:51
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