Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/09/2011, 10h28   #1
Invité de passage
 
Homme
Inscription : 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
Type de fichier : zip products_to_categories_help.xls.zip (32,7 Ko, 2 affichages)
amerig est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 11h37   #2
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 894
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 894
Points : 7 178
Points : 7 178
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

Citation:
"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.
jfontaine est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 11h39   #3
Invité de passage
 
Homme
Inscription : 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
amerig est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 12h20   #4
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 894
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 894
Points : 7 178
Points : 7 178
Ce code est a placer au niveau de la feuille dans l'éditeur VBA.

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

Citation:
"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.
jfontaine est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 14h02   #5
Invité de passage
 
Homme
Inscription : 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
amerig est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h35.


 
 
 
 
Partenaires

Hébergement Web