Copier une image d'une feuille excel à une autre

Résolu/Fermé
Cactophile - Modifié par Cactophile le 2/04/2015 à 17:33
 MMYSofts - 21 mars 2018 à 23:19
Bonjour le Forum !

Ce que je veux faire semble très simple et pourtant je bloque !!

L'idée est de créer plusieurs images depuis une feuille excel (Copier en tant qu'image). Je les renomme toute par un nom différents. et je les colle dans une feuille "tampon"
Ensuite je voudrai afficher la bonne image en fonction de la valeur d'une cellule ...
C'est la que je bloque ! comment sélectionner l'image que j'ai renommer pour le coller ensuite dans ma feuille Excel ??

Voila le code que j'utilise pour copier et renommer mon image :
<code>
Sheets("Feuil1").Select
Application.CutCopyMode = False
Sheets("Feuil1").Range("A7:AU45").Copy
Sheets("Pertes").Select
Range("J48").Select
ActiveSheet.Pictures.Paste.Select
Selection.Name = "PDB"
Application.CutCopyMode = False<
/code>

Voila et en gros maintenant je voudrai lui dire :
Prend l'image qui s'appelle PDB et colle la dans la cellule A1 par exemple

J'arrive à selectionner et à copier l'image mais je bloque pour lui dire de ce coller dans une cellule données : La ligne :
Selection.Copy Destination:=Sheets("Pertes").Range("J86")

Me renvoie un beug ...Mais le selection.Copy tout seul fonctionne !

Merci de votre aide !!

:)

2 réponses

cs_Le Pivert
Messages postés
7752
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
26 mai 2022
710
2 avril 2015 à 19:03
Bonjour,

Pour connaître le nom de l'image (celle d'Excel) pas celle que tu lui a donnée.
Tu vas dans le ruban en haut à droite:
Rechercher sélectionner- Volet sélection.
Si tu en as plusieurs, pour la retrouver tu cliques sur l'oeil, cela va l'effacer.
Là tu verras le nom de ton image que tu mettras dans cette macro:

ActiveSheet.Shapes("Image 1").Copy 'adapter le nom de l'image
    Sheets("Feuil2").Select 'adapter
    Range("A1").Select 'adapter
    ActiveSheet.Paste

2
Merci beaucoup Le Pivert !

J'arrive effectivement à retrouvé le nom de mon image et à la mettre dans la macro, mais celle-ci plante à la ligne Range("A1").Select !
Le message d'erreur est : "Erreur définie par l'application ou par l'objet"
Je ne comprend pas pourquoi cela beug ...
Et si j'essaye de relancer la macro un seconde fois elle plante ou moment du :
ActiveSheet.Shapes("Picture 12").Copy

Une idée ?

Merci beaucoup de votre aide :)
0
cs_Le Pivert
Messages postés
7752
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
26 mai 2022
710 > Cactophile
3 avril 2015 à 11:21
Essaye ceci pour trouver le numéro de la Shape:

Sub shapes_count()
   Dim intCounter As Integer
    Dim intShapeCount As Integer
    Dim img As Object
  Set img = Worksheets(1).Shapes
   intShapeCount = img.Count
  If intShapeCount > 0 Then
        For intCounter = 1 To intShapeCount
            MsgBox img.Item(intCounter).Name
             MsgBox "Shape N° " & (intCounter)
 Next intCounter
    Else
         MsgBox "No Shapes"
    End If
 End Sub


ensuite quand tu as le numéro de la Shape, tu mets ce code:

ActiveSheet.Shapes(1).Copy 'adapter le numéro de la shape
    Sheets("Feuil2").Select 'adapter
    Range("A1").Select 'adapter
    ActiveSheet.Paste
0
cs_Le Pivert
Messages postés
7752
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
26 mai 2022
710
3 avril 2015 à 11:42
Ce n'est pas la peine de te rappeler qu'il faut que la feuille où se trouve l'image à copier soit sélectionnée!
0
C'est bon ça à marché !!
Merci beaucoup de ton aide Le Pivert !!
0
Merci Cs_Le Pivert.Ton aide m'a été précieuse
0
Mike-31
Messages postés
17954
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
26 mai 2022
4 947
2 avril 2015 à 19:10
Bonjour,

Tu n'as pas besoin de VBA pour cela, regarde 2 façons d'afficher une image contenue dans le fichier en fonction du contenu d'une cellule

https://www.cjoint.com/c/EDctxLATHvM
1