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 :

Renommer un TYPE de Shapes uniquement (et pas toutes les shapes d'une feuille) [XL-365]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Août 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant MOA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2020
    Messages : 5
    Par défaut Renommer un TYPE de Shapes uniquement (et pas toutes les shapes d'une feuille)
    Bonjour à tous,

    Je fais appel au forum car mes faibles connaissances en VBA ne me permettent pas de faire ce que je veux...et c'est frustrant!

    J'explique mon problème :
    J'ai récupéré un fichier "clients" sous Excel présentant :
    • Des clients renseignés dans des formes de type rectangle à coins arrondis

    • Des prospects renseignés dans des formes de type rectangle

    • Des connecteurs renseignant les liens entre clients et prospects (exemple : mari et femme)


    Seuls les clients m'intéressent, les prospects me sont (pour le moment) inutiles.

    Je souhaiterais renommer TOUS les rectangles à coins arrondis sous la forme "ID #" où # est un nombre entier positif (un integer ira très bien) et uniquement ceux-là.
    Je n'arrive pas à ne renommer QUE les Shapes rectangle à coins arrondis. Je renomme tout ou rien.

    Pour info, voici mon code (qui ne marche pas ) :

    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
     
    Sub Transfo en BDD()
    'DEFINITION DES VARIABLES
        Dim ligne, identifiant As Integer
            ligne = 3 'Inutile pour cette partie de la macro
            identifiant = 1
        Dim Nom_Forme, designation, old_indiv, new_indiv As String
            designation = "ID "
        Dim Forme As Shape
     
     
    'AFFECTATION d'UN ID UNIQUE A CHAQUE INDIVIDU
        For Each Forme In Worksheets("CLIENTS").Shapes
            If Forme.Name Like "Rectangle : coins arrondis*" Then
                Nom_Forme = designation & identifiant
                Forme.Name = Nom_Forme
                identifiant = identifiant + 1
            End If
        Next Forme
     
    [...]
     
    End Sub
    La suite de ma macro prévoit ensuite de récupérer le contenu de toutes les formes dont le nom est "ID #" pour les mettre dans un tableur.

    Merci à l'âme charitable qui se penchera sur mon problème.

    Funny

    PS : Désolé si je n'ai pas posté au bon endroit.

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Août 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant MOA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2020
    Messages : 5
    Par défaut
    Re,

    Nouvelle tentative après avoir découvert les fonctions msoxxxx.
    Modification de la boucle For/Next puisque c'est elle qui ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        For Each Forme In Worksheets("CLIENTS").Shapes
            If Forme.Type = msoShapeRoundedRectangle Then
                Nom_Forme = designation & identifiant
                Forme.Name = Nom_Forme
                identifiant = identifiant + 1
            End If
        Next Forme
    ... et ça ne fonctionne toujours pas !

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Août 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant MOA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2020
    Messages : 5
    Par défaut
    J'ai fini par trouver grâce aux liens suivants :
    https://docs.microsoft.com/fr-fr/dot...pia#d-finition
    https://docs.microsoft.com/fr-fr/off....autoshapetype


    Je partage ci-dessous le code pour les prochains qui se poseront la question :
    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
     
    Sub Tranfo_BDD ()
     
    'DEFINITION DES VARIABLES
        Dim identifiant As Integer
             identifiant = 1
        Dim Nom_Forme, designation As String
            designation = "ID "
        Dim Forme As Shape
     
     
    'AFFECTATION d'UN ID UNIQUE A CHAQUE INDIVIDU
        For Each Forme In Worksheets("CLIENTS").Shapes
            If Forme.AutoShapeType = msoShapeRoundedRectangle Then
                Nom_Forme = designation & identifiant
                Forme.Name = Nom_Forme
                identifiant = identifiant + 1
            End If
        Next Forme
     
    [...]
    End Sub
    Bonne continuation à tous

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

Discussions similaires

  1. [2.x] Type de champ Collection - Ne pas afficher les objects existants
    Par philodido dans le forum Symfony
    Réponses: 6
    Dernier message: 26/06/2013, 17h53
  2. Réponses: 5
    Dernier message: 16/12/2006, 22h29
  3. Réponses: 11
    Dernier message: 04/05/2006, 11h50
  4. Ne pas voir les liens d'une page !
    Par nicof3 dans le forum Langage
    Réponses: 3
    Dernier message: 25/04/2006, 12h22

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