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 Excel] L'object Pictures dans la feuille de calcul: Élément de langage masqué


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé

    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
    Par défaut [VBA Excel] L'object Pictures dans la feuille de calcul: Élément de langage masqué
    bonjour

    J'ai rédigé un tutoriel pour décrire l'objet feuille de calcul, ainsi que ses différentes propriétés et méthodes:

    http://silkyroad.developpez.com/VBA/FeuilleDeCalcul/

    Dans ce cadre, l'objet Pictures me pose un cas de conscience:
    J'utilise régulièrement cet objet mais l'aide Excel indique qu'il s'agit d'un élémént masqué.

    Ma question est donc: pourquoi cet élément est il masqué?
    Est ce qu'il existe uniquement pour une compatibilité avec des versions Excel antérieures?

    L'objectif de cette question est de savoir s'il est souhaitable de continuer à utiliser l'objet Pictures, ou s'il est préférable d'utiliser l'objet Shapes (msoPicture):

    http://silkyroad.developpez.com/VBA/...lcul/#LII-B-38


    Toutes vos informations à ce sujet sont les bienvenues.




    Est ce qu'une âme charitable pourrait aussi tester les 2 procédures suivantes dans Excel2003, et éventuellement 2007 si cela est possible. (En ce qui me concerne j'ai désinstallé Office2007 car cela me posait malheureusement de gros soucis dans Outlook)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Insère une image dans la feuille de calcul
    Worksheets("Feuil1").Pictures.Insert "C:\dossier\Image2.jpg"

    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
    'Boucler sur toutes les images contenues dans la feuille afin de les 
    'enregistrer sur le disque:
     
    Sub ExtraireImagesFeuille()
        Dim Pict As Picture
        Dim Nb As Byte
     
        Application.ScreenUpdating = False
     
        ' boucle sur les images de la feuille
        For Each Pict In Worksheets("Feuil1").Pictures
            'copie image
            Pict.CopyPicture
     
            'crée un graphique
            With ActiveSheet.ChartObjects.Add(0, 0, Pict.Width, Pict.Height).Chart
                'colle l'image dans graphique
                .Paste
                'enregistre le graphique au format gif
                .Export ThisWorkbook.Path & "\" & Pict.Name & ".gif", "GIF"
            End With
     
            Nb = ActiveSheet.ChartObjects.Count
            'supprime le graphique
            ActiveSheet.ChartObjects(Nb).Delete
        Next Pict
     
        Application.ScreenUpdating = True
    End Sub

    Nota:
    Il est possible que la méthode Export ne fonctionne plus si Excel2007 a été installé sur votre poste ....



    bonne journée
    michel

  2. #2
    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
    Par défaut
    Hello Michel,
    De bon matin, j'ai déjà fait un effort
    VBA 2003 : C'est ok, l'image est bien exportée.gif avec son nom "Picture 1, 2, 3, ..."
    Je cherchais le nom du fichier d'origine alors maintenant j'en ai plein
    Pour ce qui concerne l'objet Picture, si tu trouves, tu nous dis parce qu'il y a longtemps que j'ai renoncé à comprendre... On insère l'objet et dans un cas on a un shape, dans un autre un OLEObject et parfois même une picture (au moment de l'insérer) Je teste presqu'à chaque fois


    Bonne journée
    joël

    PS - J'ai repassé les Pictures.gif en .jpg et c'est OK aussi

  3. #3
    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
    Par défaut
    Hello (re)
    Je viens de tester avec Shape en modifiant ces deux lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Dim Pict As Shape
     
        For Each Pict In Worksheets("Feuil1").Shapes
    j'ai le même résultat. Mais je pense que tu le savais

  4. #4
    Expert confirmé

    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
    Par défaut
    bonjour cher Ouskel'n'or

    Merci pour les tests dans Excel2003


    bonne journée
    michel

  5. #5
    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
    Par défaut
    J'ai la réponse à ta question :
    Citation Envoyé par Tu
    pourquoi cet élément est il masqué?
    Est ce qu'il existe uniquement pour une compatibilité avec des versions Excel antérieures?
    Ton hypothèse est la bonne.
    Citation Envoyé par L'aide
    Les objets masqués dans le modèle d'objet de Visual Basic pour Microsoft Excel 97 sont listés dans le tableau suivant. Ces objets ne sont pris en charge que pour assurer une compatibilité descendante. Si vous écrivez du nouveau code, utilisez les nouvelles fonctionnalités proposées par Microsoft Excel 97. Pour afficher les objets masqués dans l'Explorateur d'objets, cliquez à l'aide du bouton droit de la souris dans la fenêtre Explorateur d'objets puis cliquez sur Afficher les membres masqués dans le menu contextuel.
    La liste de ces objets
    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
    Objets masqués	                                Remplacement
    Arc, Arcs, Drawing, DrawingObjects,
    Drawings, Label, Labels, Line, Lines,
    Oval, Ovals, Picture, Pictures, Rectangle,
    Rectangles	                               Nouvelles couche de dessin Shapes
    Button, Buttons, CheckBox, CheckBoxes,
    DialogFrame, DropDown, DropDowns,
    EditBox, EditBoxes, GroupBox, GroupBoxes,
    GroupObject, GroupObjects, ListBox,
    ListBoxes, OptionButton, OptionButtons,
    ScrollBar, ScrollBars, Spinner, Spinners, 
    TextBox, TextBoxes	                       Contrôles ActiveX 
    Menu, MenuBar, MenuBars, MenuItem,
    MenuItems, Menus, Toolbar, ToolbarButton,
    ToolbarButtons, Toolbars	               CommandBars
    Module, Modules	modèle d'objet extensibleVBE
    DialogSheet, DialogSheets	               Custom Forms
    DialogSheet, DialogSheets	               Formulaires personnalisés
    Si ça peut t'être utile...

  6. #6
    Expert confirmé

    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
    Par défaut
    Merci Ouskel'n'or

    Oui ça m'aide puisque cela confirme la raison du statut "masqué.


    encore merci
    michel

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 19/02/2007, 20h33
  2. [VBA-E] Colorier une ligne dans une feuille excel
    Par skyst3f dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/10/2006, 11h42
  3. [VBA-E]Supprimer macro (code dans code feuille de calcul)
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/04/2006, 16h37
  4. [VBA excel]Inserer un graphique dans un formulaire
    Par girardeau dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/11/2005, 15h58
  5. [VB6] [Excel] Insérer une image dans une feuille
    Par mathias dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 09/10/2002, 07h44

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