Copier une image d'une feuille excel à une autre

Résolu
Cactophile -  
 MMYSofts -
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

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
    1. Cactophile
       
      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
      1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730 > Cactophile
         
        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
    2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      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
    3. Cactophile
       
      C'est bon ça à marché !!
      Merci beaucoup de ton aide Le Pivert !!
      0
    4. MMYSofts
       
      Merci Cs_Le Pivert.Ton aide m'a été précieuse
      0
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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