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 :

Shapes : "For Each Shp.." et formes modifiées manuellement plus accessibles.


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 62
    Points : 45
    Points
    45
    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
    Invité
    Invité(e)
    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.

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 62
    Points : 45
    Points
    45
    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
    Invité
    Invité(e)
    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.

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 62
    Points : 45
    Points
    45
    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
    Invité
    Invité(e)
    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

  7. #7
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 62
    Points : 45
    Points
    45
    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, 19h40
  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, 15h37
  3. apply-templates et for-each
    Par d'Oursse dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 14/05/2004, 08h38
  4. utilisation de for each
    Par billoum dans le forum ASP
    Réponses: 5
    Dernier message: 19/03/2004, 15h30
  5. [VB6] For Each ... In ...
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/02/2003, 12h56

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