IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-E] insertion images existante dans le classeur


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué Avatar de Ania
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 155
    Points : 134
    Points
    134
    Par défaut [VBA-E] insertion images existante dans le classeur
    Bonjour à tous

    Voici mon problème, je souhaite insérer ou copier une image, déjà présente dans mon classeur, à un certain endroit afin de ne pas avoir à redimmensionner cette image

    merci d'avance

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    en fait il sagit d'agir sur un shape ... par exemple pour dupliquer l'image 1 de la fenêtre courante et la placer sur la cellule C3 :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Macro1()
    Dim s As Shape
     
    Set s = ActiveSheet.Shapes("Picture 1").Duplicate
    s.Top = Range("C3").Top
    s.Left = Range("C3").Left
    End Sub

  3. #3
    Membre habitué Avatar de Ania
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 155
    Points : 134
    Points
    134
    Par défaut
    Merci bbil

    mais j'ai utilisé plutot cette méthode car mon image était déjà placée par rapport à ma zone sélectionnée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Range("A1:E14").Select
    Range("E14").Activate
    Selection.Copy
    Range("K22").Select
    ActiveSheet.Paste
    Par contre comment peut-on savoir si ActiveSheet.Shapes("Picture 1") existe??

    Autrement pour savoir si une image portant ce nom est affiché à l'écran afin de pouvoir la sélectionnée et la supprimer.

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    tu peu utiliser la gestion d'erreur pour éviter de tester si l'image existe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub EffaceImage()
      On Error Resume Next
      ActiveSheet.Shapes("Picture 1").Delete
      On Error GoTo 0
    End Sub

  5. #5
    Membre habitué Avatar de Ania
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 155
    Points : 134
    Points
    134
    Par défaut
    encore une fois merci bbil

    ta fonction marche à merveille seul un problème subsiste, j'ai du renomer toutes mes images pour plus de clarter et donc lorsque j'en copie une, la nouvelle image porte le même nom

    Est-il possible de renomer une image, car le code fournit par l'enregistreur ne m'aide pas beaucoup :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveSheet.Shapes("Picture 24").Select
    Selection.Name = "Image 10"

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Shapes("Picture 24") = "Image 10"
    bien sur "image 10" ne doit pas exister précédament...

  7. #7
    Membre habitué Avatar de Ania
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 155
    Points : 134
    Points
    134
    Par défaut
    Je suis désolé mais ce code ne fonctionne pas, il me renvoie une erreur '438' : Propriété ou méthode non gérée par cet objet

    mais au cas ou voici le code utilisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test
        Call AfficheImage("H13:J20", "A1")
     End Sub
     
    Function AfficheImage(PlageImage As Variant, CelluleDest As Variant)
      Sheets("Feuil1").Select
      Range(PlageImage).Select
      Selection.Copy
      Range(CelluleDest).Select
      ActiveSheet.Paste
      ActiveSheet.Shapes("Image 10") = "Image 41"
    End Function

    le débogueur bloque sur la dernière ligne : ActiveSheet.Shapes("Image 10") = "Image 41"

    petite précision l'image que je souhaite copier à été renomée "Image 10" et elle se situe dans la zone "H13:J20".


    [edit]
    J'ai trouvé c'est tout bête, il manquait le .Name après ActiveSheet.Shapes("Image 10")

  8. #8
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par Ania
    [edit]
    J'ai trouvé c'est tout bête, il manquait le .Name après ActiveSheet.Shapes("Image 10")
    désolé je me suis pas relu...

  9. #9
    Membre habitué Avatar de Ania
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 155
    Points : 134
    Points
    134
    Par défaut
    Citation Envoyé par bbil
    désolé je me suis pas relu...
    Y'a pas de mal tu m'as déjà beaucoup aidé et de plus je ne suis pas trop tiré les cheveux, ni trop cogné la tête avant de trouvé la solution

    Seulement un autre problème persiste puisque ce n'est pas la bonne image qui renommée : ce n'est pas l'image nouvellement copiée qui est modifiée mais déjà existante

    une solution serait d'utiliser un nom temporaire afin de modifier la bonne image, auriez-vous autre chose de plus simple ???

  10. #10
    Membre habitué Avatar de Ania
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 155
    Points : 134
    Points
    134
    Par défaut
    bonsoir

    comme dit précédemment j'ai retenu la solution d'utiliser un nom tampon afin de pouvoir renomée la bonne image, ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ActiveSheet.Shapes("Image " & NumImageExistante).Name = "Image " & NumImageExistante + 1400
    ActiveSheet.Shapes("Image " & NumImageExistante).Name = "Image " & NumImageExistante + 400
    ActiveSheet.Shapes("Image " & NumImageExistante + 1400).Name = "Image " & NumImageExistante
    merci encore pour ton aide bbil.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. insertion image/icône dans appli
    Par sroux dans le forum SWT/JFace
    Réponses: 4
    Dernier message: 29/01/2007, 13h58
  2. VBA-Recherche d'une feuille dans plusieurs classeurs
    Par derf3183 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 13/07/2006, 14h50
  3. [VBA-E] insertion de formule dans cellule
    Par jeff37 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 31/05/2006, 13h53
  4. [VBA-E] Insertion de texte dans word
    Par malhivertman1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/05/2006, 16h17
  5. [VBA-E]Insertion graphique Excel dans Word
    Par sat478 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 19/04/2006, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo