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 :

Grouper des images


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 95
    Par défaut Grouper des images
    Bonjour,
    J'ai besoin de grouper une dizaines d'images ("PictureNNN") dans une feuille en code VBA.
    Je tourne en rond depuis un petit moment alors je viens demander à quelqu'un s'il a déjà fait.
    J'ai récupéré le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        ActiveSheet.Shapes.Range(Array("Picture 511", "Picture 512", "Picture 513")).Select
        Selection.ShapeRange.Group
    mais il faut que je remplace ce qui se trouve dans "array(...)" par je ne sais pas quoi ?

    A+

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Peux-tu être un peu plus clair,car à priori tu as trouvé le code que tu veux, alors qu'est-ce qui bloque

    Philippe

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 95
    Par défaut
    oui pardon,
    Moi qui suis dessus je ne me rends pas compte.
    Voilà, j'ai dans ma feuille des pictures déjà crées mais je ne connais pas leurs noms (j'ai mis ""Picture 511", "Picture 512",.. " comme exemple) donc j'ai créé le code qui suit pour les récupérer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    Dim MyArray(10) as string
     
    ' Sélection des Picture seules
    ' ************************************************************
            If img.Name Like "Picture*" Then
                 i = i + 1
                MyArray(i) = img.Name
            End If
    et c'est là que ça coince car il n'accepte pas ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveSheet.Shapes.Range(Array(MyArray(1) & "," & MyArray(2) & "," & MyArray(3) & "," & MyArray(4))).Select
    Selection.ShapeRange.Group.Select
    J'espère que c'est plus clair

    A+

  4. #4
    Invité
    Invité(e)
    Par défaut
    Ok

    Je ne connais pas Excel pour Mac, mais il y a le moyen de voir le nom des objets, mais sur les versions 2002 de Excel, on peut avoir une icone dans la barre de dessin qui se nomme "Sélectionnez les objets", elle permet de voir les noms.

    Cependant, on la trouve dans les menus personnalisés car elle n'est pas affichée tout de suite, il faut regarder dans la barre d'outils dessin du menu personnalisé et la glisser dans ta barre d'outil.

    Philippe

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Par défaut
    Bonjour,

    Une réponse un peu tardive, mais elle peut être utile.
    En fait il ne faut pas se prendre trop la tête, chez moi j'ai utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       ActiveWindow.Selection.SlideRange.Shapes.Range(MyArray).Select
       ActiveWindow.Selection.ShapeRange.Group.Select
    et pour ceux que cela intéresse, l'ensemble du code est ici :
    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
    38
    39
    40
    41
    42
    43
    Sub liste_image()
     
    Dim MyArray(10) As String
     
        Nbobjet = ActiveWindow.Selection.SlideRange.Shapes.Count
        Text_Objet = " objets dans la planche"
        If Nbobjet = 1 Then Text_Objet = " objet dans la planche"
        MsgBox ("Il y a " & Nbobjet & Text_Objet)
     
     
        ' Boucle de lecture des objets de la planche
        For Iobjet = 1 To Nbobjet
            ActiveWindow.Selection.SlideRange.Shapes(Iobjet).Select
            Set Ma_Shape = ActiveWindow.Selection.SlideRange.Shapes(Iobjet)
            ObjetName = Ma_Shape.Name
            ObjetType = Ma_Shape.Type
            ObjetTop = Ma_Shape.Top
            ObjetLeft = Ma_Shape.Left
            ObjetWidth = Ma_Shape.Width
            ObjetHeight = Ma_Shape.Height
                T_ecr = "L_objet   : " & L_objet & Chr(13) & _
                        "Objet     : " & Iobjet & Chr(13) & _
                        "Nom       : " & ObjetName & Chr(13) & _
                        "Type      : " & ObjetType & Chr(13) & _
                        "Top       : " & ObjetTop & Chr(13) & _
                        "Left      : " & ObjetLeft & Chr(13) & _
                        "Width     : " & ObjetWidth & Chr(13) & _
                        "Height    : " & ObjetHeight & Chr(13)
                MsgBox T_ecr
     
     ' Sélection des Picture seules
    ' ************************************************************
            If ObjetName Like "Picture*" Then
                 i = i + 1
                MyArray(i) = ObjetName
            End If
     
        Next
     
     
       ActiveWindow.Selection.SlideRange.Shapes.Range(MyArray).Select
       ActiveWindow.Selection.ShapeRange.Group.Select
    End Sub
    A+
    PPz

  6. #6
    Membre émérite Avatar de sabzzz
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 748
    Par défaut
    bonjour patyom et à tous,

    voici une autre solution possible,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub GroupePicture()
    Dim Shp As Shape
    For Each Shp In ActiveSheet.Shapes
    If Left(Shp.Name, 4) = "Pict" Then Shp.Select Replace:=False
    Next
    Selection.ShapeRange.Group
    End Sub

Discussions similaires

  1. Grouper des images
    Par tarzan_tlse dans le forum Images
    Réponses: 4
    Dernier message: 09/08/2007, 13h44
  2. Afficher des images sous directX
    Par cyberlewis dans le forum DirectX
    Réponses: 17
    Dernier message: 12/07/2004, 12h07
  3. question sur le format des images ..
    Par vbcasimir dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 28/08/2003, 12h08
  4. [CR] Grouper des sections de détail?
    Par rodrigue50 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 06/06/2003, 14h32
  5. [TP][MULTI-PROBLEME]Comment afficher des images pcx
    Par mikoeur dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 24/10/2002, 13h57

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