Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Invité de passage
    Homme Profil pro
    Inscrit en
    septembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : septembre 2011
    Messages : 3
    Points : 0
    Points
    0

    Par défaut Exclamation Besoin d'une fonction Excel du type regroupement de valeurs en fonction de doublons

    Bonjour à tous,

    C'est mon premier post ici et j'avoue que j'espère vraiment avoir de l'aide car ça m'éviterai beaucoup de temps perdu

    Dans le tableau ci-joint, il y a :
    - product_id = identifiant produit (col A)
    - categories_id_new = catégorie du produit correspondant (col C)

    Le problème, un produit peut avoir plusieurs catégories. Donc un product_id peut être affiché plusieurs fois et avoir donc plusieurs categories_id_new.

    Le résultat voulue : avoir en col F les product_id et en col G toutes les categories_id_new pour un produit par ligne ; séparées par une virgule, se serait un must !

    Dans l'idée, ça donnerait un truc du genre (données réelles) :
    {col F} product_id = 53
    {col G} categories_ids = 54, 43 (peu importe l'ordre ici)

    C'est pour un import sur une boutique et étant donné qu'il y a 2000 produits environ, ça serait bien utile voyez-vous

    Je ne vous cache pas que je remercie d'avance tous ceux qui aideront à résoudre ce mystère

    Merci donc
    Arnaud
    Fichiers attachés Fichiers attachés

  2. #2
    Expert Confirmé Sénior Avatar de jfontaine
    Homme Profil pro Jérôme FONTAINE
    Contrôleur de Gestion
    Inscrit en
    juin 2006
    Messages
    4 732
    Détails du profil
    Informations personnelles :
    Nom : Homme Jérôme FONTAINE
    Âge : 41
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : juin 2006
    Messages : 4 732
    Points : 9 261
    Points
    9 261

    Par défaut

    Bonjour,

    Ce code devrait répondre à ton besoin

    Code :
    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
    Sub Montri()
     
    Dim Rg As Range
    Dim i As Long
    Dim rgAD As String
    Dim l As Long
     
    l = 2
     
    For i = 2 To Range("A65536").End(xlUp).Row
        'Cherche si existant dans la liste cible
        Set Rg = Range("F:F").Find(Range("A" & i).Value, , , xlWhole)
            If Rg Is Nothing Then
     
            Set Rg = Range("A:A").Find(Range("A" & i).Value, , , xlWhole)
                If Not Rg Is Nothing Then
                   Range("F" & l).Value = Rg.Value
                   rgAD = Rg.Address
                   Do
                       If Range("G" & l).Value <> "" Then Range("G" & l).Value = Range("G" & l).Value & ";"
                       Range("G" & l).Value = Range("G" & l).Value & Rg.Offset(0, 2).Value
                       Set Rg = Range("A:A").FindNext(Rg)
                   Loop While Not Rg Is Nothing And Rg.Address <> rgAD
     
                End If
             l = l + 1
        End If
     
    Next i
     
    End Sub
    Jérôme

    "Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
    Si la réponse répond à votre besoin, votre vote nous encouragera.
    Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.

  3. #3
    Invité de passage
    Homme Profil pro
    Inscrit en
    septembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : septembre 2011
    Messages : 3
    Points : 0
    Points
    0

    Par défaut Merci :)

    Bonjour jfontaine,
    Merci pour ta réponse rapide déjà, vraiment chapeau.

    Par contre, je suis assez novice sur Excel, je suis sur Mac avec Excel 2008. Comment doit-on intégré ce code, à quel endroit s'il te plait ?

    Merci d'avance
    Arnaud

  4. #4
    Expert Confirmé Sénior Avatar de jfontaine
    Homme Profil pro Jérôme FONTAINE
    Contrôleur de Gestion
    Inscrit en
    juin 2006
    Messages
    4 732
    Détails du profil
    Informations personnelles :
    Nom : Homme Jérôme FONTAINE
    Âge : 41
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : juin 2006
    Messages : 4 732
    Points : 9 261
    Points
    9 261

    Par défaut

    Ce code est a placer au niveau de la feuille dans l'éditeur VBA.

    Sous Excel Windows menu Outils / Macros
    Jérôme

    "Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
    Si la réponse répond à votre besoin, votre vote nous encouragera.
    Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.

  5. #5
    Invité de passage
    Homme Profil pro
    Inscrit en
    septembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : septembre 2011
    Messages : 3
    Points : 0
    Points
    0

    Par défaut Résolu :)

    Rebonjour et merci pour votre aide

    J'avais posté le sujet sur deux forum en même temps et j'ai trouvé la solution

    arnaud

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •