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 :

Supprimer des labels doubles


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2020
    Messages : 2
    Par défaut Supprimer des labels doubles
    Bonjour,

    J'aimerais savoir comment supprimer des labels qui apparaissent deux fois. Voici mon code :

    Nom : Capture.PNG
Affichages : 266
Taille : 35,9 Ko

    Je crée plusieurs labels, seulement il y en a plusieurs qui sont identiques, j'aimerais donc supprimer les labels similaires.

    Merci d'avance

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 385
    Par défaut
    Bonjour,

    Avant toute chose, je t'invite à supprimer un des deux postes que tu as créé. Cela fait doublon, et on va finir par s'y perdre.
    De plus, il est préférable d'utiliser les balises de Code plutôt qu'une capture d'écran. Cela permet de pouvoir copier coller le code en cas de besoin, et c'est plus léger qu'une image.

    Pour ton besoin sinon, les labels créés sont dans la collection 'Labels'.
    En parcourant cette collection avec la boule For Each, tu peux tester si le nom d'un label existe déjà, auquel cas tu le supprime.

    Si tu n'es pas à l'aise avec les collections, tu pourrais tout aussi bien copier les données qui t'intéresse sur une feuille Excel temporaire (dans ton cas, j'ai l'impression qu'il s'agit d'une liste d'aéroport), puis tu supprimes les doublons (l'enregistreur de macros te diras comment faire), et tu exécute ton code sur cette nouvelle liste qui n'a pas de doublon, comme ça tu n'as pas de label en double.

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 186
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si tu n'es pas à l'aise avec les collections, tu pourrais tout aussi bien copier les données qui t'intéresse sur une feuille Excel temporaire (dans ton cas, j'ai l'impression qu'il s'agit d'une liste d'aéroport), puis tu supprimes les doublons (l'enregistreur de macros te diras comment faire), et tu exécute ton code sur cette nouvelle liste qui n'a pas de doublon, comme ça tu n'as pas de label en double.
    Je suis absolument d'accord avec les propos de mat955 que je salue au passage et d'ailleurs même si je n'ai aucun problème à manipuler par VBA les collections et dictionnaire, je ne vois pas l'intérêt d'utiliser ces méthode si ce n'est de me gargariser de les connaître.

    Plus on se rapproche des fonctionnalités natives d'excel qui ont toutes les méthodes équivalentes en VBA plus on se facilite la vie et donc outre la fonctionnalité suppression des doublons qui existe depuis la version 2007, il existe également le filtre avancé d'excel qui permet d'exporter sans les doublons.
    C'est cette méthode que je privilégie et que j'utilise dans l'exemple ci-dessous.

    Voici un exemple de code qui exporte la colonne (étiquette From) d'un tableau structuré deux colonnes à droite de celui-ci sans les doublons
    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
    Sub T()
     ' Dim Déclaration
     Dim olist As ListObject
     Dim rngTarget As Range
     Dim rngSource As Range
     ' Assignation
     Set olist = shtArrival.ListObjects(1) ' Tableau structuré de la feuille (CodeName shtArrival)
     Set rngSource = olist.Range
     With rngSource
      Set rngTarget = .Offset(ColumnOffset:=.Columns.Count + 1).Resize(1, 1)
     End With
     rngTarget.Value = "From"
     ' Exportation de la colonne From sans les doublons
     rngSource.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=rngTarget, Unique:=True
     ' Code pour des traitements divers
     ' .......
     ' .......
     ' Fin de programme
     rngTarget.CurrentRegion.Clear ' Efface les données exportées
     Set rngTarget = Nothing: Set rngSource = Nothing
    End Sub
    Il suffit maintenant de placer à partir de la ligne 16 le code permettant de récupérer, de traiter ces doublons

    Illustration La zone exportée est entourée en rouge et pour les besoins de cette illustration, j'ai mis en commentaire la ligne 19 du code qui efface la zone exportée après traitement.

    Nom : 200108 dvp Export sans doublon.png
Affichages : 263
Taille : 51,3 Ko

    A lire si des éléments utilisés dans l'exemple ne sont pas connus
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. Réponses: 0
    Dernier message: 19/02/2009, 12h36
  2. Supprimer des Label d'une Frame
    Par Zorgloub dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/02/2008, 15h06
  3. Supprimer des lignes vides dans un label
    Par benjhe dans le forum VB.NET
    Réponses: 3
    Dernier message: 19/12/2007, 09h57
  4. supprimer des labels crées dynamiquement
    Par patbou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/10/2007, 14h53
  5. Supprimer des lignes en double.
    Par Empty_body dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/06/2007, 15h45

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