Créer toutes les combinaisons possibles Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
b
bobetmanu
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 6 mars 2019
Version d'Excel : 2016 FR

Message par bobetmanu » 6 mars 2019, 17:16

Tout d'abord bonjour à tous, nouveau parmi vous j'ai un soucis pour trouver une formule, je cherche depuis plusieurs jours mais malgré mes essais je ne trouve pas ce que je veux faire.

Donc merci par avance à ceux qui prendront du temps pour me répondre.

Je monte une boutique prestashop et je suis en train de faire mon CSV pour l'import des produits.

J'ai quatre colonne pour les animaux (chien, chats, chevaux, etc) et 6 colonnes pour des sous catégories (Alimentation, hygiène, accessoires, etc)

Les colonnes sont remplies ou pas si le produit matche avec un animal et une sous catégorie.

Je souhaite créer toutes les possibilités possibles à partir de ces colonnes afin d'alimenter prestashop sachant qu'un produit qui est pour les chines par exemples donnnerait : Chiens,Chiens/accessoire,Chiens/alimentation. Ceci alimenterait la catégorie Chiens de prestashop mais également les sous catégories accessoire et alimentation de la catégorie chiens.

Merci d'avance
A
Amadéus
Modérateur
Modérateur
Messages : 17'748
Appréciations reçues : 73
Inscrit le : 7 mai 2006
Version d'Excel : Office Excel 2003 FR et 2013FR

Message par Amadéus » 6 mars 2019, 17:41

Bonjour
Un peu de lecture salutaire pour obtenir une réponse
http://forum.excel-pratique.com/annonce ... r-t13.html
Cordialement
Amadéus vous informe que, pour cause de saturation, il ne peut plus répondre aux messages privés non sollicités.
b
bobetmanu
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 6 mars 2019
Version d'Excel : 2016 FR

Message par bobetmanu » 6 mars 2019, 18:16

OK merci, désolé si j'ai oublié quelque chose.

Je joins donc ci dessous un exemple :
Espèce
Sous menu
Chiens,Chats
Alimentation
Chien
Alimentation
Chiens,Chats
Alimentation,Hygiène
Chiens,Chats,Chevaux,Poissons
Alimentation,hygiène
Je souhaite obtenir : Chiens,Chats,Chiens/alimentation,Chats/Alimentation

Merci beaucoup
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 8'867
Appréciations reçues : 340
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 6 mars 2019, 19:23

bonjour,

une solution via une macro à adapter à ton fichier (ici la macro fait l'hypothèse que tes données sont en A1:B5)
Sub aargh()
    For i = 2 To 5
        e = Split(Cells(i, 1), ",")
        sm = Split(Cells(i, 2), ",")
        For i1 = LBound(e) To UBound(e)
            For i2 = LBound(sm) To UBound(sm)
                s = s & e(i1) & "/" & sm(i2) & ","
            Next i2
        Next i1
    Next i
    s = Left(s, Len(s) - 1)
    MsgBox s
End Sub
b
bobetmanu
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 6 mars 2019
Version d'Excel : 2016 FR

Message par bobetmanu » 6 mars 2019, 20:02

Merci de ta réponse. Je vais tester ça et reviens au résultat. 8[]
b
bobetmanu
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 6 mars 2019
Version d'Excel : 2016 FR

Message par bobetmanu » 7 mars 2019, 09:42

Tout d'abord merci.

J'ai oublié de mentionner que je voudrai que les valeurs se mettent dans une troisième colonne et en face de chaque double colonne. Je m'explique :
Chiens,Chats,Chiens/Aliment,Chiens/hygiène,Chats/Aliments,etc...Chiens,ChatsAliments,hygiène,Aliment spécifique
Chiens,Poissons,Chiens/Aliments,Poissons/Aliements,etc....Chiens,PoissonsAliments
En tout cas c'est sympa de m'aider à charge de revanche (pas sur excel en tout cas lol)
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 8'867
Appréciations reçues : 340
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 7 mars 2019, 11:23

Bonjour,

Comme signalé, je t'ai mis une macro à adapter à ton fichier. N'ayant pas ton fichier, je te laisse faire l'adaptation.
b
bobetmanu
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 6 mars 2019
Version d'Excel : 2016 FR

Message par bobetmanu » 9 mars 2019, 22:59

J'ai fais quelques modifications liées à mon fichier. Je partage. Merci en tout cas.
Sub CategoriePrestashop()
    For i = 2 To 1000
        E = Split(Cells(i, 21), ",")
        sm = Split(Cells(i, 22), ",")
        For i1 = LBound(E) To UBound(E)
            For i2 = LBound(sm) To UBound(sm)
                s = s & E(i1) & "/" & sm(i2) & ","
            Next i2
                
        Next i1
            If IsEmpty(s) Then
                Cells(i, 20) = s
                
            ElseIf Cells(i, 20).Value Like "" Then
                Cells(i, 20) = s
            
            Else
                
                Cells(i, 20) = Left(s, Len(s) - 1)
            
            End If
            
            s = ""
            
    Next i
       
End Sub
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message