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

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé 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
    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

+ 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