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

Excel Discussion :

Aide pour identifier et regrouper des lignes similaires


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 11
    Points : 9
    Points
    9
    Par défaut Aide pour identifier et regrouper des lignes similaires
    Bonjour à tous,

    mon besoin est a la fois simple, et difficile a expliquer, j'ai donc fait un schéma, plutot que de long discours :

    Nom : filtrage_avance.png
Affichages : 141
Taille : 23,7 Ko

    J'ai une liste d'origine, et j'aurais besoin d'identifier rapidement les items ayant les memes attributs, soit en rajoutant une colonne avec les items similaires, ou bien en les regroupant.

    j'imagine que ca doit etre faisable via un tableau croisé dynamique, mais je suis une vraie buse en excel ..

    Merci d'avance a tous !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Un simple tri sur 2 clés donnera le résultat escompté hormis les lignes vides.
    Donc [Données > Trier > Attribut1 et Attribut2 sur la seconde ligne].

    Cordialement.
    Jean-Claude.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par jcDSoft Voir le message
    Bonsoir,
    Un simple tri sur 2 clés donnera le résultat escompté hormis les lignes vides.
    Donc [Données > Trier > Attribut1 et Attribut2 sur la seconde ligne].

    Cordialement.
    Jean-Claude.
    Merci Jean-Claude, ca pourrait effectivement faire l'affaire meme si j'avais un peu simplifié le souci pour le présenter

    En fait j'ai besoin de continuer a saisir les données comme montré.

    Y a t'il possibilité de saisir les données sous une forme dans une feuille et avoir un rendu trié dans l'autre feuille ?

    Merci encore

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Le code suivant est à copier dans "Code" de la feuille [DONNEES] (nom que j'ai adopté et donc à modifier si besoin est. De même la feuille de tri est nommée
    DONNEES TRIEES
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub Worksheet_Change(ByVal Target As Range)
        Application.ScreenUpdating = False
        cel = ActiveCell.Address
        Tri
        Sheets("DONNEES").Select
        Range(cel).Select
        Application.ScreenUpdating = True
    End Sub
    Il faut ensuite insérer un module et y copier le code qui suit:
    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
     
    Sub Tri()
        Dim chaine() As String
        Range("A1").Select
        Selection.CurrentRegion.Select
        Selection.Copy
        Sheets("DONNEES TRIEES").Select
        Range("A1").Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
        Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Key2:=Range("C2") _
            , Order2:=xlAscending, Header:= _
            xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
            xlSortNormal
        nbrelig = Selection.Rows.Count
        Cells(1, 4).Value = "TRI"
        ReDim chaine(nbrelig)
        chaine(2) = ""
        For lig = 2 To nbrelig
            For col = 2 To 3
                chaine(lig) = chaine(lig) & Cells(lig, col).Value 'Concaténation par colonne
            Next col
        Next lig
        For lig = 2 To nbrelig - 1
            un = IIf(chaine(lig) = chaine(lig + 1), True, False)
            If chaine(lig) = chaine(lig + 1) And un Then
                Cells(lig, 4) = "X"
                Cells(lig + 1, 4) = "X"
            End If
        Next lig
        Selection.CurrentRegion.Select
        Selection.Sort Key1:=Range("D2"), Order1:=xlAscending, Key2:=Range("B2") _
            , Order2:=xlAscending, Key3:=Range("C2"), Order3:=xlAscending, Header:= _
            xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
            xlSortNormal
        Columns(4).ClearContents
    End Sub
    Si tu ne connais pas VBA et qu'il te faut des explications n'hésite pas à le faire savoir.
    Avec cette procédure tu peux saisir un nombre de lignes indéterminé mais sur 3 colonnes uniquement soit 2 colonnes "attributs" le tri ne supportant que 3 paramètres.

    Cordialement.
    Jean-Claude

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 767
    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 : 12 767
    Points : 28 626
    Points
    28 626
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Avec cette procédure tu peux saisir un nombre de lignes indéterminé mais sur 3 colonnes uniquement soit 2 colonnes "attributs" le tri ne supportant que 3 paramètres.
    Si la procédure ne permet que trois niveaux de tri, il y a une astuce pour l'augmenter.
    Il suffit d'ajouter une colonne contenant la concaténation des colonnes à trier.
    Exemple d'une concaténation en colonne A permettant de trier 5 colonnes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =B2 & D2 & F2 & E2 & C2
    Le tri se faisant alors sur cette colonne
    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. Aide pour identifier une erreur de syntaxe
    Par tribalou dans le forum Cobol
    Réponses: 10
    Dernier message: 21/02/2008, 00h46
  2. [PC] Aide pour identifier problème d'exécution
    Par charfeddine dans le forum Cobol
    Réponses: 1
    Dernier message: 03/12/2007, 00h27
  3. Réponses: 4
    Dernier message: 24/04/2007, 10h18
  4. Regrouper des lignes
    Par xenos dans le forum Excel
    Réponses: 2
    Dernier message: 12/03/2007, 16h49
  5. Aide pour diagramme de structure des données
    Par DeezerD dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 04/12/2004, 19h10

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