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 les doublons d'un tableau grâce à VBA


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2017
    Messages : 2
    Par défaut Supprimer les doublons d'un tableau grâce à VBA
    Bonjour à tous, alors voilà

    Je suis tout à fait débutant en VBA donc peut être que ma question sera un peu simpliste.
    Pour l'instant, la plupart des problèmes que j'ai rencontrés ont déjà été traités sur ce site, du coup je n'avais pas besoin de m'inscrire mais là, je ne trouve pas..
    J'utilise pour l'instant l'enregistreur de macro principalement, qui permet de comprendre assez facilement quelle action correspond à quelle partie du code.

    Ce que je cherche à faire :
    Je dois extraire des lignes de plusieurs TCD, et les rassembler ensuite en un seul tableau dans une seule feuille. Cependant, certaines lignes de mon tableau sont des doublons, je cherche donc grâce à VBA à supprimer les doublons, action que l'enregistreur me traduit par

    ActiveSheet.Range("Tableau1[#Tout]").RemoveDuplicates Columns:=5, Header:= _
    xlYes
    où la colonne 5 est celle que j'utilise pour repérer les doublons (qui est la référence de ma donnée)

    Or dans mon cas, le tableau s'appelle Tableau1, et je voudrais y faire référence sans son nom (qui varie dès qu'on crée un nouveau tableau)

    Pour faire référence aux feuilles sans utiliser leur nom, ou bien même leur numéro qui varie quand on ouvre de nouvelles feuilles, j'ai contourné le problème en utilisant les commandes ActiveSheet.Next.Select et ActiveSheet.Previous.Select. Mais dans ce cas, je ne sais pas comment faire référence à ce tableau précisément.

    Si vous savez m'aider je vous en serait reconnaissant. J'espère que ma question est claire et je m'excuse si non, c'est difficile de se rendre compte..

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Tu peux prendre exemple là-dessus, en changeant le nom de la feuille selon ce que tu as à faire
    Tu pourrais boucler les feuilles à l'aide d'une variable worksheet plutôt que d'y aller avec le nom directement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Dim Tablo As ListObject
     
        For Each Tablo In Sheets("Feuil1").ListObjects
            Sheets("Feuil1").Range(Tablo).RemoveDuplicates Columns:=5, Header:=xlYes
        Next
    En passant, il y a un forum dédié aux macros...

  3. #3
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    si tu n'as qu'un seul tableau sur ta feuille (chose à toujours faire à mon sens, pour ne pas s'emmêler les pinceaux), tu peux aussi passer par la collection ListObjects indicée


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Toto()
     
    ' le premier tableau de Feuil1
    Sheets("Feuil1").ListObjects(1).DataBodyRange.RemoveDuplicates Columns:=5, Header:=xlYes
    on peut même localiser la colonne via son nom plutôt que sa position
    exemple si la colonne a pour en-tête "MaColonne"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Sheets("Feuil1").ListObjects(1)
        .DataBodyRange.RemoveDuplicates Columns:=.ListColumns("MaColonne").Index, Header:=xlYes
    End With

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2017
    Messages : 2
    Par défaut
    Fiou désolé pour ma réponse un peu tardive mais j'étais un peu bloqué, je savais pas trop comment faire référence à la feuille actuelle via un nom entre guillemets

    En effet, dans ma macro j'ouvre déjà 4 feuilles depuis des TCD, ensuite j'extrait des données et ensuite je supprime la feuille dans laquelle j'ai copié collé le tableau (les données) du coup mes feuilles changent de noms : la première va s'appeler Feuil1 ensuite Feuil2 donc je ne savais pas quel nom mettre. Du coup j'ai simplement utilisé : ActiveSheet.Name="le nom que je veux", et grâce à ça je peux utiliser vos programmes, qui ceci dit en passant marchent parfaitement.

    Donc merci beaucoup joe.levrai et parmi c'est super, et ça va me faire gagner beaucoup de temps chaque semaine c'est top !

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

Discussions similaires

  1. Supprimer les doublons dans un tableau
    Par ghaddou dans le forum Débuter
    Réponses: 5
    Dernier message: 02/01/2010, 12h19
  2. Supprimer les doublons dans un tableau à deux dimensions
    Par ouskel'n'or dans le forum Contribuez
    Réponses: 0
    Dernier message: 30/07/2008, 09h47
  3. Supprimer les doublons dans un tableau à deux dimensions
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 30/07/2008, 09h33
  4. [langage] pb de supprimer les doublons d'un tableau
    Par peppena dans le forum Langage
    Réponses: 1
    Dernier message: 31/10/2006, 18h08
  5. Réponses: 5
    Dernier message: 23/05/2006, 14h08

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