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 :

[E-00] propriété picture: comment choisir une image déjà sur la feuille xls


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 99
    Points : 45
    Points
    45
    Par défaut [E-00] propriété picture: comment choisir une image déjà sur la feuille xls
    bonjour,

    voici mon porblème: j'ai ajouté une image a mon fichier excel dans les propriété je voudrais que le picture soit un jpg déjà présent sur mon fichier excel (je voudrais éviter une image venant d'un lien physique de mon pc car le programme va passer de pc en pc et j'ai besoin que les image s'affiche qd mm )

    comment puis je faire ?

    voici mon fichier excel

    http://cjoint.com/?lykQzpu8YK

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonsoir


    Tu peux utiliser cette procédure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    Option Explicit
     
    Private Const Fichier As String = "C:\ImageTemp.gif"
     
     
    Private Sub Worksheet_Activate()
       Dim nb As Byte
       Dim Sh As Shape
     
       Application.ScreenUpdating = False
     
       'Supprime l'image temportaire si elle existe
       If Dir(Fichier) <> "" Then Kill Fichier
     
        'Définit le 1er shape de la feuille comme image
        ' à afficher dans le contrôle
        Set Sh = Worksheets("Sheet1").Shapes(1)
     
        'copie le shape dans la feuille
        Sh.CopyPicture
        'crée un graphique
        With ActiveSheet.ChartObjects.Add(0, 0, _
                            Sh.Width, Sh.Height).Chart
            .Paste 'colle l'image dans graphique
            ' enregistre le graphique au format gif
            .Export Fichier, "GIF"
        End With
     
        nb = ActiveSheet.ChartObjects.Count
        'supprime le graphique
        ActiveSheet.ChartObjects(nb).Delete
     
        'Affiche l'image dans le contrôle Image de Sheet2
        Sheet2.Image1.Picture = LoadPicture(Fichier)
     
        Application.ScreenUpdating = True
    End Sub


    Tu peux également utiliser la méthode PastePicure de Stephen Bullen (fait une recherche sur internet)


    bonne soirée
    michel

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 99
    Points : 45
    Points
    45
    Par défaut
    merci d'avoir répondu mais j'ai pas bien tout compris
    je ne comprends pas pourquoi tu pars d'un fichier c:/... vu que moi mon image est déjà dans le fichier excel sur une page à part elle n'est pas du tout enregistré sur le pc
    dsl si je me trompe ....

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Pour VBA, une fois placée sur la feuille Excel, ton image est une forme (Shape).
    Si tu n'as qu'une forme dans ta feuille, tu devrais pouvoir la copier en utilisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Nom de la feuille").Shapes(1).copy
    et pour la coller "ailleurs", utiliser "Paste".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("Nom de l'autre classeur.xls").Worksheets("Nom de l'autre feuille").Shapes(1).Paste
    Une autre méthode : tu fais la manip' en enregistrant la macro. Tu nous mets le code obtenu et on le simplifiera (les macros enregistrées en mettent toujours trop )
    Bonne journée

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonjour


    il ne faut pas confondre une image insérée dans une feuille de calcul (qui est en fait une forme : shape)
    avec un contrôle Image.

    Tu dois réenregistrer la forme en format Image pour ensuite l'afficher dans le contrôle (ou utiliser la méthoe PastePicture de Stephen Bullen).

    Une autre solution pourrait consister à stocker tes images dans d'autres contrôle Image ou dans un contrôle ImageList.
    http://silkyroad.developpez.com/VBA/ImageList/


    bonne journée
    michel


    [EDIT] Bonjour Joel ... ;o)

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    En effet, anyah, tu ne précises pas si ton image est dans un contrôle image ou si elle est directement insérée dans la feuille, or "mon" code ne s'applique qu'à une image directement insérée dans la feuille.
    (Bonjour Michel ;o))

  7. #7
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 99
    Points : 45
    Points
    45
    Par défaut
    effectivement par abus de langage j'ai dit Image au lieu de image control dsl dsl dsl dsl
    effectivement c'est bien dans un image control que je voudrais effectuer mon "collage"
    ou puis-je trouver le "ImageList " ? j'ai lu le cours et ca m'interesse fortement...(merci silkyroad )

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonsoir


    Tout d'abord tu dois disposer de l'ocx mscomctl.ocx

    Ensuite, fait un clic droit dans la boîte à outils du UserForm.
    Sélectionne l'option "Contrôles supplémentaires".
    Coche la ligne "Microsoft ImageList Control version 6.0".
    Clique sur le bouton OK pour valider.
    Ensuite, place et redimensionne l'objet dans l'UserForm.


    bonne soirée
    michel

  9. #9
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 99
    Points : 45
    Points
    45
    Par défaut
    arf ... je n'ai pas de userform tout se fait sur les pages excel malheureusement ....

  10. #10
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonjour

    Utilise le bouton "Autres contrôles" de la barre d'outils 'Boite à outils contrôles" si tu travailles dans la feuille de calcul.

    bonne journée
    michel

  11. #11
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 99
    Points : 45
    Points
    45
    Par défaut
    ahhh mas c'est vraiment trop bien ce petit control !!!!!!

    très bonne astuce

    merci beaucoup beaucoup ca m'aide enormément !!!

    bonne fin de journée

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/07/2007, 17h19
  2. Comment mettre une image en fond de JFrame
    Par marc26 dans le forum Débuter
    Réponses: 3
    Dernier message: 19/01/2004, 17h57
  3. [Crystal Reports 9] comment insérer une image dans Détails
    Par VVE dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 22/10/2003, 17h06
  4. Comment copier une image dans le presse papier.
    Par cprogil dans le forum Langage
    Réponses: 7
    Dernier message: 09/09/2003, 15h54
  5. comment réduire une image jpeg (taille x*y)
    Par don-diego dans le forum C
    Réponses: 4
    Dernier message: 14/07/2002, 20h06

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