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 :

[débutante VBA] trouver la liste des images utilisée dans une feuille [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    Points : 688
    Points
    688
    Par défaut [débutante VBA] trouver la liste des images utilisée dans une feuille
    J'ai un fichier excel avec des articles et a coté de certains articles, une image

    ces images sont soit des "Object x", soit des "Picture y" (j'ignore pour les personnes qui ont fait le fichier on mélangé les deux)

    je vais avoir besoin de faire des fiches articles dans word ou je dois mettre le nom de l'article, sa description et son image s'il y a un

    Mais j'ai l'impression que pour ca, ca m'aiderait d'avoir la liste des images utilsées (pour regarder pour chaque objet ses coordonnées afin de pouvoir trouver en vis a vis de quel article il se trouve)

    Et je ne peux pas juste incrémenter le n° de 1, il y a plein de trou dans les numérotation

  2. #2
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Bonjour,


    tu peux parcourir les shapes.

    Un exemple à adapter :

    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
        Dim FL1 As Worksheet 
        Dim FL2 As Worksheet 
        Set FL1 = Worksheets("LOGOS") 
        Set FL2 = Worksheets("COMMANDE") 
     
     
        On Error Resume Next 
     
        Dim sh As Shape 
        For Each sh In FL2.Shapes 
            With sh 
            If .Type = 13 And LCase(Left(.Name, 7)) = "picture" Then 
                ' ... 
                        Else 
                ' ...
            End If 
            End With 
        Next sh

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    Points : 688
    Points
    688
    Par défaut
    mmm, me voici avec une premiere moitié de solution, merci

    Si je fais ca, je récupere toute les picture x

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Image()
     
        Dim sh As Shape
        For Each sh In ActiveSheet.Shapes
            With sh
                If .Type = 13 And (LCase(Left(.Name, 4)) = "pict" Or LCase(Left(.Name, 4)) = "Obje") Then
                    sh.Copy
                    Range("A1").Select
                    ActiveSheet.Paste
                End If
            End With
        Next sh
    End Sub
    Mais ca ne me ramene aucun objet
    Ca n'indique aucune erreur, mais aparement, il ne parcourt que les pictures

    alors que quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test()
        ActiveSheet.Shapes("Object 1").Copy
        Range("A1").Select
        ActiveSheet.Paste
    End Sub
    La ca marche mais je n'en ai qu'un évidement

    est-ce que c'est .type=13 qui bloque? je n'arrive pas a trouver ce que ca veut dire

  4. #4
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 699
    Points
    6 699
    Par défaut
    Bonjour

    voir si c'est bon pour repérer tes objets, facile à adapter pour lister au lieu de msgbox...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Parcourir()
    Dim objShape As Shape
     
    With Worksheets(1)
            For Each objShape In .Shapes
                objShape.TopLeftCell.Select
                MsgBox objShape.Name & "  " & objShape.TopLeftCell.Address & "  " & objShape.Type
            Next objShape
    End With
    End Sub

    sinon pour info : (voir l'aide vba - nom index - description)

    Spécifie le type d'une forme ou d'un ensemble de formes.
    Nom Valeur Description
    msoAutoShape 1 Forme automatique
    msoCallout 2 Légende
    msoCanvas 20 Zone de dessin
    msoChart 3 Graphique
    msoComment 4 Commentaire
    msoDiagram 21 Diagramme
    msoEmbeddedOLEObject 7 Objet OLE incorporé
    msoFormControl 8 Contrôle de formulaire
    msoFreeform 5 Forme libre
    msoGroup 6 Groupe
    msoIgxGraphic 24 Graphique SmartArt
    msoInk 22 Encre
    msoInkComment 23 Commentaire manuscrit
    msoLine 9 Trait
    msoLinkedOLEObject 10 Objet OLE lié
    msoLinkedPicture 11 Image liée
    msoMedia 16 Support
    msoOLEControlObject 12 Objet de contrôle OLE
    msoPicture 13 Image
    msoPlaceholder 14 Espace réservé
    msoScriptAnchor 18 Ancre de script
    msoShapeTypeMixed -2 Type de forme mixte
    msoTable 19 Tableau
    msoTextBox 17 Zone de texte
    msoTextEffect 15 Effet de texte
    cordialement,

    Didier
    Didier Gonard

    Dernier tutoriel :
    Le VBA qu'est ce que c'est ?
    Tutoriels : Voir la liste de mes tutoriels Excel & VBA et mon site pro sur ma Page DVP
    Cours et tutoriels pour apprendre Excel
    N'oubliez pas de mettre : ..quand c'est le cas !

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    Points : 688
    Points
    688
    Par défaut
    Super, ca repere bien les objets aussi

    (ca m'a meme repéré une autre catégorie de shape, un comment, meme si je ne vois rien de spécial dans la cellule en question)

    Avec ca, je pense que je vais pouvoir avancer

    Et merci aussi pour la liste de type j'avais bien essayé de chercher dans l'aide, mais j'avais pas réussit a trouver ca

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

Discussions similaires

  1. Place la liste des logiciels installés dans une feuille Excel
    Par ESVBA dans le forum Vos Contributions VBScript
    Réponses: 3
    Dernier message: 17/07/2011, 10h13
  2. [XL-2003] Liste des objets dessins dans une feuille Excel
    Par benladder dans le forum Conception
    Réponses: 1
    Dernier message: 09/08/2010, 04h47
  3. [XL-2003] Comment utiliser des images stockées dans une feuille
    Par Pastekk dans le forum Excel
    Réponses: 2
    Dernier message: 30/06/2009, 12h17
  4. Liste des fichiers CSV dans une feuille
    Par DubDub dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 19/02/2009, 08h05
  5. Supprimer une/des image(s) dans une feuille de calcul
    Par Lorenzole+bo dans le forum Excel
    Réponses: 1
    Dernier message: 21/12/2007, 11h23

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