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 - Comment changer le nom d'une shape appartenant à un groupe [XL-2000]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club Avatar de arnaud.123
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 24
    Points : 39
    Points
    39
    Par défaut Shapes - Comment changer le nom d'une shape appartenant à un groupe
    Bonjour,

    Voici mon problème :
    Dans le fichier joint, en cliquant sur shapes, vous modifiez le contenu.
    Sauf que ça ne marche pas quand la shape appartient à un groupe.

    Ce qui est bizarre, c'est que pour une shape appartenant à un groupe, on peut changer son nom mais pas son contenu.

    Quelqu'un a-t-il une solution ?
    Merci d'avance.



    PS : je ne me vois pas devoir dégrouper, modifier puis regrouper ... ça ne serait pas très propre.

    PS2 : Je tourne sur Excel 2000

    Voici le code :


    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
     
    Option Explicit
     
     
    Sub Rectangle_QuandClic()
        Dim Active_Shape As String
     
        'on récupère le nom de l'objet qui a appelé
        Active_Shape = Application.Caller
     
        'on lance la fonction pour modifier l'objet en question
        'au départ, on cherche dans la feuille active
        Call Changer(ActiveSheet.Shapes, Active_Shape)
     
    End Sub
     
     
    Function Changer(ouChercher, quoiChercher)
     
        Dim s As Shape
     
        For Each s In ouChercher
            'on passe en revue tous les shpaes
            If s.Type = msoGroup Then
                'on a trouvé un groupe
                Call Changer(s.GroupItems, quoiChercher) 'on cherche dans le groupe
            Else
                'sinon, on continue
                If s.Name = quoiChercher Then
                    'le nom correspond
     
                    'alors on fait des modif
                    s.Name = s.Name ' Pas de bug pour changer le nom
     
                    'ici, cela bug quand on essaie d'attaquer le texte d'une shape appartenant à un groupe
                    s.DrawingObject.Text = Format(Now, "hh:mm:ss")
                    s.AlternativeText = quoiChercher & " - " & Now
                End If
            End If
        Next
     
    End Function
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    J'ai testé en simplifiant sans souci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Rectangle_QuandClic()
     
    With ActiveSheet.Shapes(Application.Caller)
        .DrawingObject.Text = Format(Now, "hh:mm:ss")
        .AlternativeText = Application.Caller & " - " & Now
    End With
    End Sub

  3. #3
    Nouveau membre du Club Avatar de arnaud.123
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 24
    Points : 39
    Points
    39
    Par défaut
    Bravo pour la simplification.

    Le problème persiste toujours si la shape fait partie d'un groupe.
    C'est l'exmple qu'il y a dans le fichier joint.

    Cordialement

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    J'ai testé sur ton fichier. Groupe ou non, le texte du shape cliqué est modifié sans problème.

  5. #5
    Nouveau membre du Club Avatar de arnaud.123
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 24
    Points : 39
    Points
    39
    Par défaut Merci
    mercatog,

    Je viens de tester ta macro et la mienne, elles fonctionnent toutes les 2 sur ... excel 2010.

    Le problème vient donc de ma version 2000 qui ne prend pas en charge cette spécificité et qui a été corrigée sous 2010 (ou avant)

    En tous les cas encore merci pour ton aide et pour ta simplification de code.
    Comme au boulot on est en version 2000, j'ai un réel problème.

    Cordialement.

    Arnaud

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

Discussions similaires

  1. [WD-2010] Shapes - changer le nom après une copie
    Par oamram dans le forum VBA Word
    Réponses: 7
    Dernier message: 06/11/2012, 12h51
  2. Nom d'une Shape line
    Par emmanuel89500 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/12/2010, 23h10
  3. [PPT-2007] ligne 1 en gras, ligne 2 en italic dans une shape. comment faire en VBA?
    Par ola-oz dans le forum VBA PowerPoint
    Réponses: 6
    Dernier message: 01/07/2010, 14h59
  4. Depuis une shape, comment remonter au stencil ?
    Par DidierC92 dans le forum Visio
    Réponses: 4
    Dernier message: 25/09/2008, 15h10
  5. Comment changer le nom d'une webservice ?
    Par hacksi dans le forum Services Web
    Réponses: 2
    Dernier message: 04/04/2008, 14h54

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