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 :

Comment combiner des lignes ayant le même ID ?


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2023
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2023
    Messages : 8
    Points : 9
    Points
    9
    Par défaut Comment combiner des lignes ayant le même ID ?
    Bonjour,

    j'ai un fichier excel contenant des infos de dossiers de clients identifiés à l'aide d'un ID se trouvant dans la 1ère colonne. Le problème c'est qu'il y a plusieurs fois les mêmes ID sur différentes lignes. J'aimerais réduire le nombre de ligne de façon à ce qu'il n'y ait plus qu'une seule ligne par ID. Les données se trouvant dans les autres colonnes pouvant être fusionnées ou mieux, additionnées (car ce sont des chiffres).

    Merci de votre aide car je ne sais plus quoi faire

  2. #2
    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 760
    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 760
    Points : 28 613
    Points
    28 613
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si vous avez une version 2010 ou supérieure, j'utiliserais Power Query au lieu du VBA
    Intégré à Excel dans l'onglet Donnée depuis la version 2016 (pour 2010 et 2013, il faut ajouter le complément COM Power Query depuis la commande éponyme se trouvant dans le groupe Compléments de l'onglet [Developpeur]

    Si j'ai bien compris votre demande, voici un exemple avec une colonne contenant sur plusieurs lignes des références (5 au total) sur plusieurs lignes avec cinq colonnes contenant des valeurs. Ce qui donne au final, les références regroupées sur une ligne avec la somme des valeurs des cinq colonnes
    Les étapes par rapport à la table "source" visible dans l'illustration
    Dans Excel
    • Sélectionner une cellule de la table à regrouper
    • Cliquer sur la commande A partir de Tableau ou d'une plage de l'onglet [Données]

    Dans l'éditeur Power Query
    • Sélectionner la colonne Ref
    • Cliquer sur la commande Regrouper par
    • Dans la boîte de dialogue "Regrouper par", cocher l'option Avancé et remplir comme illustré plus bas
    • Trier la colonne Ref (optionnel)
    • Cliquer sur la commande Fermer et charger dans l'onglet [Accueil]

    Code de la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    let
        Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
        #"Type modifié" = Table.TransformColumnTypes(Source,{{"Ref", type text}, {"Mont 1", Int64.Type}, {"Mont 2", Int64.Type}, {"Mont 3", Int64.Type}, {"Mont 4", Int64.Type}, {"Mont 5", Int64.Type}}),
        #"Lignes groupées" = Table.Group(#"Type modifié", {"Ref"}, {{"Mont 1", each List.Sum([Mont 1]), type nullable number}, {"Mont 2", each List.Sum([Mont 2]), type nullable number}, {"Mont 3", each List.Sum([Mont 3]), type nullable number}, {"Mont 4", each List.Sum([Mont 4]), type nullable number}, {"Mont 5", each List.Sum([Mont 5]), type nullable number}}),
        #"Lignes triées" = Table.Sort(#"Lignes groupées",{{"Ref", Order.Ascending}})
    in
        #"Lignes triées"
    Illustration

    Nom : 230526 dvp PQ Regrouper par.png
Affichages : 36
Taille : 121,1 Ko
    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

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2023
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2023
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Ca marche parfaitement bien. Merci beaucoup de votre aide et bonne continuation !

    Antoine

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 11/10/2018, 11h11
  2. Comment avoir des div sur une même ligne sans utiliser float ?
    Par Sergejack dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 13/10/2007, 15h31
  3. [XSLT] Encadrer des paragraphes ayant les mêmes balises
    Par billou13 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 21/10/2005, 10h18
  4. Comment mettre des lignes de couleur dans une TCheckListBox ?
    Par Isa31 dans le forum Composants VCL
    Réponses: 9
    Dernier message: 31/03/2005, 08h40
  5. Réponses: 4
    Dernier message: 02/09/2004, 14h50

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