XL 2010 croisements multiples & démultiplications

matoupitou

XLDnaute Occasionnel
bonjour les Fortiches

déjà merci pur votre aide si précieuse

comment faire pour avoir, sur un même onglet, autant de lignes qu'il y a de produits et qu'on ait aussi pour toutes les sortes de stores les quantités qu'ils leur sont allouées

oulala pas clair là ; je vous entends déjà - alors une pièce jointe pour aider et vous éclairer

Onglet 1 : ce que je reçois
Onglet 2 : la table
Onglet 3 : le résultat attendu

Onglet 4 : l'idéal : comment faire en utilisant des fonctions ou manip rapides
(ici je n'ai mis que qq produits et qq catégories.... j'avoue que c'est une tannée à faire à la mano !)

pourvu qu'il existe une solution !

MERCI!
 

Pièces jointes

  • Test_propal_et_report.xlsx
    24.2 KB · Affichages: 8

chris

XLDnaute Barbatruc
Bonjour

Exemple peu clair : il faudrait saisir quelques lignes dans automatisation pour comprendre quelles données on utilise

As-tu la possibilité de télécharger et installer l'add on PowerQuery (intégré ensuite à Excel à partir de la version 2016) ?

Ce type de choses est très facile à faire avec
 

matoupitou

XLDnaute Occasionnel
Bonjour

Exemple peu clair : il faudrait saisir quelques lignes dans automatisation pour comprendre quelles données on utilise

As-tu la possibilité de télécharger et installer l'add on PowerQuery (intégré ensuite à Excel à partir de la version 2016) ?

Ce type de choses est très facile à faire avec
bonjour chris et merci déjà pour ce retour

le résultat attendu est sur l'onglet bleu

j'ai cru bien faire en ajoutant un onglet 'vide' avec juste les en-têtes - DSL

j'ai Excel2010 - pas sûr (aux vues des bridages IT de sécurité - que je puisse télécharger ce complément

j'ai Analyzer par exemple (est--ce du même acabit ?
 

chris

XLDnaute Barbatruc
RE

Voici ce que j'obtiens avec PowerQuery

Il y a un écart de 1 sur

06007539416142446TYPO3
06007539416142452TYPO3
06007539416142845TYPO3

soit je n'ai pas compris la règle, soit il y a une erreur sur l'exemple

Je ne connais pas Analyser

PowerQuery est un requêteur.

Une entreprise qui travaille avec une version datant de 13 ans devrait au moins accepter les add on qui existaient déjà à cette époque et qui sont maintenant partie intégrante d'Excel...
 

Pièces jointes

  • Test_propal_et_report.xlsx
    38.3 KB · Affichages: 5

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour MatouPitou, Chris,
Un essai en PJ avec cette macro. Elle s'exécute automatiquement lorsqu'on sélectionne la feuille Automatisation.
VB:
Sub Worksheet_Activate()
Dim Bleu, Jaune, Couleur, NbPropal%, NbIdt%, MatIdt, Ligne%, Npropal%, i%, DL%, EAN$, Formule$
    'Formule = =INDEX(PROPAL!$A$1:$ZZ$1000;EQUIV(A2;PROPAL!$A$1:$A$1000;0);EQUIV(C2;PROPAL!$A$2:$ZZ$2;0)) En français
    Formule = "=INDEX(PROPAL!R1C1:R1000C702,MATCH(RC[-3],PROPAL!R1C1:R1000C1,0),MATCH(RC[-1],PROPAL!R2C1:R2C702,0))"
    Bleu = RGB(200, 255, 255): Jaune = RGB(255, 255, 200): Couleur = Jaune      ' Def des couleurs
    Sheets("automatisation").[A2:D10000].ClearContents                          ' Effacement précedent
    Sheets("automatisation").[A2:D10000].Interior.Color = vbWhite               ' Effacement couleurs
    NbPropal = Sheets("Propal").Cells(Cells.Rows.Count, "A").End(xlUp).Row - 2  ' Nombre de propal
    NbIdt = Sheets("MAGS").Cells(Cells.Rows.Count, "A").End(xlUp).Row           ' Nombre d'IDT
    MatIdt = Sheets("MAGS").Range("B3:D" & NbIdt)                               ' Tranfert données ds array
    Ligne = 2
    For Npropal = 1 To NbPropal                                                 ' Pour toute propal
        EAN = Sheets("Propal").Cells(Npropal + 2, "A")                          ' Extraction EAN
        For i = 1 To UBound(MatIdt)                                             ' Pour toute l'array
            MatIdt(i, 1) = "'" & CStr(EAN)                                      ' On rajoute l'EAN (chaine)
        Next i
        ' On écrit le tableau EAN, et on le met en couleur (alternée bleu/jaune)
        Sheets("automatisation").Cells(Ligne, "A").Resize(UBound(MatIdt, 1), UBound(MatIdt, 2)) = MatIdt
        If Couleur = Jaune Then Couleur = Bleu Else Couleur = Jaune
        Range("A" & Ligne & ":D" & Ligne + UBound(MatIdt) - 1).Interior.Color = Couleur
        Ligne = Ligne + UBound(MatIdt)
    Next Npropal
    DL = Cells(Cells.Rows.Count, "A").End(xlUp).Row     ' Dernière ligne de la feuille
    Range("D2:D" & DL).Formula = Formule                ' On met la formule de calcul Implantation
    Range("D2:D" & DL) = Range("D2:D" & DL).Value       ' Copie colle des valeurs
End Sub
 

Pièces jointes

  • Test_propal_et_report.xlsm
    183.9 KB · Affichages: 1

sylvanu

XLDnaute Barbatruc
Supporter XLD
@chris,
Savez vous combien d'entreprises travaillent encore avec 2007, 2010 ou 2013 ?
Quand l'entreprise est grande et le parc PC important l'invest est non négligeable.
En bas, pour quelques utilisateurs : Ce serait sympa d'avoir la dernière version !
En haut : C'est combien l'invest ? Et le retour sur investissement ? Euh ... Bon, pour plus tard !
Une entreprise qui travaille avec une version datant de 13 ans devrait au moins accepter les add on
Bon nombre d'équipes IT refusent tout add on. Ils sont un peu parano car c'est ouvrir une boite de Pandore et n'ont nulle envie de prendre le risque. On peut en faire des hoses avec des add on, y compris des choses dangereuses si non maitrisées.
Alors c'est plus confortable de les refuser au "nom de la sécurité", ça marche toujours, surtout pour quelques utilisateurs.
 

matoupitou

XLDnaute Occasionnel
RE

Voici ce que j'obtiens avec PowerQuery

Il y a un écart de 1 sur

06007539416142446TYPO3
06007539416142452TYPO3
06007539416142845TYPO3

soit je n'ai pas compris la règle, soit il y a une erreur sur l'exemple

Je ne connais pas Analyser

PowerQuery est un requêteur.

Une entreprise qui travaille avec une version datant de 13 ans devrait au moins accepter les add on qui existaient déjà à cette époque et qui sont maintenant partie intégrante d'Excel...
oui vous avez raison - bonne nouvelle j'ai powerquery - comment fait-on 1ère fois pour moi !
 

chris

XLDnaute Barbatruc
@chris,
Savez vous combien d'entreprises travaillent encore avec 2007, 2010 ou 2013 ?
Quand l'entreprise est grande et le parc PC important l'invest est non négligeable.
En bas, pour quelques utilisateurs : Ce serait sympa d'avoir la dernière version !
En haut : C'est combien l'invest ? Et le retour sur investissement ? Euh ... Bon, pour plus tard !
Les versions non supportées peuvent aussi couter très cher et le temps perdus à fabriquer des fonctionnalités devenues natives, plus encore

J'ai bossé dans une multinationale qui avait 10 ans de retard en Excel mais payait le support à Microsoft (pas gratuit) et il y avait nombre d'erreurs dans les classeurs dus au format xls incapable de prendre correctement en charge les 30 langues utilisées et ces erreurs entraînaient des coûts importants...

Un add on fourni par Microsoft est plus sûr que tout code VBA récupéré sur un forum...
 

chris

XLDnaute Barbatruc

sylvanu

XLDnaute Barbatruc
Supporter XLD
Les versions non supportées peuvent aussi couter très cher et le temps perdus à fabriquer des fonctionnalités devenues natives, plus encore
J'ai bossé dans une multinationale qui avait 10 ans de retard en Excel mais payait le support à Microsoft (pas gratuit) et il y avait nombre d'erreurs dans les classeurs dus au format xls incapable de prendre correctement en charge les 30 langues utilisées et ces erreurs entraînaient des coûts importants...
Un add on fourni par Microsoft est plus sûr que tout code VBA récupéré sur un forum...
Vous prêchez un convaincu.
Mais je n'étais qu'utilisateur pas décideur.
Et vous le savez, "ceux d'en haut" ne décident que sur le fameux "retour sur investissement", surtout les multinationales américaines. :)
 

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 183
dernier inscrit
karelhu35