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 :

Lister les valeurs distinctes présentes sur plusieurs feuilles


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Points : 364
    Points
    364
    Par défaut Lister les valeurs distinctes présentes sur plusieurs feuilles
    Bonjour,
    j'ai un petit casse-tête à vous soumettre

    Voilà j'importe dans Excel des données d'un fichier CSV. Je me retrouve avec deux colonnes : une avec des noms de fichiers, l'autre avec des "labels" (en fait un n° de version applicatif). Une ligne = 1 nom de fichier + 1 label.
    J'ai un problème maintenant que j'ai plus de 65556 lignes dans mon CSV : je suis obligé de répartir mes données sur deux feuilles excel. Jusque-là, je maîtrise.

    Mais il me faut la liste des labels distincts (j'en ai 300 à peu près). Auparavant je repérais assez facilement les labels distincts : je triais par label, puis je vérifiais pour toutes les lignes si le label de la ligne i était identique ou non à celui de la ligne i-1. Ce n'était pas trop long parce qu'il n'y avait pas de boucles imbriquées.
    Maintenant je ne peux plus trier aussi facilement puisque j'ai deux feuilles. Je ne veux pas m'amuser à faire des boucles imbriquées pour voir si chaque label est déjà référencé, ce serait trop long.

    Alors si quelqu'un a un truc pour que je sorte facilement la liste des labels distincts, je suis preneur. J'ai essayé avec un tableau croisé dynamique, ça pourrait marcher si je trouvais comment lui faire accepter des zones sur deux (ou plus) feuilles différentes. Au pire je ferai un TCD par feuille et je pourrai croiser plus facilement les listes, mais ce n'est pas très élégant.

    Merci.

  2. #2
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    bonjour,

    deux possibilité

    ou tu travaille via access
    ou tu le fait via une connection ODBC et msquery
    Alleï Bonjour chez vous!

  3. #3
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour tlm,

    Une autre possibilité à tester.
    En supposant les noms de fichiers en colonne A et les labels en colonne B, le tout réparti sur les feuilles 1 et 2 :
    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
    Sub supp_doublons_labels()
    Dim Col As New Collection, i As Long, j As Byte
     
    For j = 1 To 2
        With Sheets(j)
            For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
                On Error Resume Next
                Col.Add .Cells(i, 1) & " / " & .Cells(i, 2), CStr(.Cells(i, 1))
            Next
        End With
    Next
     
    For i = 1 To Col.Count
        Sheets(3).Cells(i, 1) = Col.Item(i)
    Next
     
    End Sub
    Report des résultats en feuille 3
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Points : 364
    Points
    364
    Par défaut
    Merci Fring.
    Subtile cette idée d'utiliser une collection, ça répond parfaitement à mon besoin et en plus c'est rapide.

    Merci aussi pour ta réponse mayekeul, je n'ai pas eu l'occasion de la creuser à cause de Fring

    Bonne journée à tous.


    Edit : je rajoute le code de Fring adapté à mon besoin exact pour ceux que ça pourrait intéresser.
    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
     
    Sub supp_doublons_labels()
    Dim Col As New Collection, i As Long, j As Byte
     
    For j = 2 To 3
        With Sheets(j)
            For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
                On Error Resume Next
                Col.Add .Cells(i, 2), CStr(.Cells(i, 2))
            Next
        End With
    Next
     
    For i = 1 To Col.Count
        Sheets(1).Cells(i, 1) = Col.Item(i)
    Next
     
    End Sub

  5. #5
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    tant que c'est bon pour toi, c'est bon pour nous!
    ;o)

    bon amusement pour la suite
    Alleï Bonjour chez vous!

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/12/2014, 16h12
  2. [XL-2007] copier lignes choisies les coller en bas sur plusieurs feuilles
    Par marskng dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/11/2012, 16h07
  3. chercher les doublons sur plusieurs feuilles
    Par huître dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 09/06/2011, 15h48
  4. [XL-2003] Compter les occurences sur plusieurs feuilles
    Par docjo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/10/2010, 07h55
  5. [XL-2007] Recopier les données d'une cellule sur plusieurs feuilles
    Par anubis62 dans le forum Excel
    Réponses: 1
    Dernier message: 25/06/2009, 08h41

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