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

  1. #1
    Membre du Club
    Inscrit en
    octobre 2006
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : octobre 2006
    Messages : 59
    Points : 42
    Points
    42
    Par défaut Shapes : "For Each Shp.." et formes modifiées manuellement plus accessibles.
    Bonsoir,

    Lorsque je fais une boucle avec le code For Each Shp In ActiveSheet.Shapes afin d'accéder à toutes les shapes présentes dans une feuille excel, celles qui ont été modifiées manuellement avec les points ne sont plus accessibles contrairement aux autres.

    Mon objectif est d'enlever les couleurs de toutes les shapes pour pouvoir imprimer plus facilement.

    Existe-t'il une solution ?, ou ces formes ne sont-elles plus accessibles une fois déformées.

    Merci par avance.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    4 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 4 283
    Points : 10 899
    Points
    10 899
    Billets dans le blog
    29
    Par défaut
    Citation Envoyé par zermatt Voir le message
    Bonjour,

    Sur Office 365, je n'ai pas ce problème, même avec des formes groupées.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  3. #3
    Membre du Club
    Inscrit en
    octobre 2006
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : octobre 2006
    Messages : 59
    Points : 42
    Points
    42
    Par défaut
    Merci, je suis sur Office 2016, je vais vérifier sur d'autres versions, le problème vient peut-être de là.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    4 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 4 283
    Points : 10 899
    Points
    10 899
    Billets dans le blog
    29
    Par défaut
    Citation Envoyé par zermatt Voir le message
    Mettez un fichier en ligne avec plusieurs de vos formes avec et sans modif pour voir.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  5. #5
    Membre du Club
    Inscrit en
    octobre 2006
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : octobre 2006
    Messages : 59
    Points : 42
    Points
    42
    Par défaut
    Merci, pourriez-vous tester la macro dans le fichier ci-joint permettant d'afficher le nom et le contenu des formes (ici 3 incluant le bouton de la macro) dans un premier temps,
    puis de modifier un rectangle avec "clic droit - modifier les points" et de tester à nouveau la macro.

    Dans le deuxième cas la macro plante au moment de lire le contenu du rectangle déformé.

    Merci par avance pour votre aide. Le problème vient peut-être de mes connaissances rudimentaires sur le sujet ou de ma version d'office pro 2016 (windows), mais je n'en ai pas d'autres sous la main.

    edit : le fait d'ajouter un simple connecteur (ligne droite) par exemple, provoque le même arrêt de la macro.
    j'ai aussi testé sur un Macbook, même problème.


    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
     
    Sub test_shape()
     
    Dim Shp As Shape
    Dim nomRectangle As String
    Dim contenu As String
     
    For Each Shp In ActiveSheet.Shapes
     
                nomRectangle = Shp.Name
                MsgBox nomRectangle
     
                contenu = Shp.TextFrame.Characters.Text
                MsgBox contenu
     
    Next Shp
     
    End Sub
    Fichiers attachés Fichiers attachés

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    4 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 4 283
    Points : 10 899
    Points
    10 899
    Billets dans le blog
    29
    Par défaut
    Citation Envoyé par zermatt Voir le message
    M
    C'est lié au type de la forme. Testez 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
     
    Sub test_shape()
     
    Dim Shp As Shape
    Dim NomRectangle As String
    Dim Contenu As String
     
     
        For Each Shp In ActiveSheet.Shapes
     
            With Shp
                 NomRectangle = .Name
                 Contenu = ""
                 Select Case .Type
                        Case 1, 8
                             Contenu = .TextFrame.Characters.Text
                        Case 5
                             If .TextFrame2.HasText Then Contenu = .TextFrame2.TextRange
                 End Select
                 MsgBox "Nom : " & NomRectangle & Chr(10) & "Type : " & Shp.Type & Chr(10) & "Contenu : " & Contenu
            End With
     
        Next Shp
     
    End Sub
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  7. #7
    Membre du Club
    Inscrit en
    octobre 2006
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : octobre 2006
    Messages : 59
    Points : 42
    Points
    42
    Par défaut
    Merci infiniment pour la rapidité et la solution qui fait sens.
    Faire un test sur la forme est très judicieux. Bravo !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/06/2014, 20h40
  2. [XL-2007] mettre en forme les cellule ( for each)
    Par dodo69 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 26/07/2011, 16h37
  3. apply-templates et for-each
    Par d'Oursse dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 14/05/2004, 09h38
  4. utilisation de for each
    Par billoum dans le forum ASP
    Réponses: 5
    Dernier message: 19/03/2004, 16h30
  5. [VB6] For Each ... In ...
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/02/2003, 13h56

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