Regroupement par cascade de 3

KIM

XLDnaute Accro
Bonjour le forum,
Une collègue utilise une macro concoctée par notre ami Didier MyDearFriend. Je le remercie ainsi que le forum car, après l'avoir adapté à nos données, elle est bien utilisée depuis un bon moment.
Cette macro regroupe Par Reference (feuil Groupes Par Ref) et Par Nom (feuil Groupe Par Nom) mes données (feuil Base) en calculant la somme des nombres commandés(col F) et du Prix (col G) correspondant.
Ma collègue m'a demandé de regrouper les données avec un 3ieme niveau qui est la colonne du Type (col E).
C-a-d-
Les 2 premieres feuille sont toujours utilisées,
1- Rajouter une feuille de regroupement par Type (feuil Groupe Par Ref-Type) selon la cascade REF/NOM/TYPE
et faire la somme des autres colonnes selon le regroupement

2- Rajouter une feuille de regroupement par Type (feuil Groupe Par Nom-Type) selon la cascade Nom/Ref/TYPE
et faire la somme des autres colonnes selon le regroupement

Un TCD peut faire l'affaire mais la collègue m'a demandé de lui modifier la macro et j'avoue je n'ai pas reussi. Je fais appel à vous et je vous en remercie
Bien amicalement
KIM [file name=PourKim41.zip size=21206]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/PourKim41.zip[/file]
 

Pièces jointes

  • PourKim41.zip
    20.7 KB · Affichages: 22

myDearFriend!

XLDnaute Barbatruc
Bonsoir Kim, le Forum,

Je ne suis pas certain d'avoir pleinement compris ta demande...
Ci-joint une tentative de modification qui, j'espère, pourra t'aider.

Cordialement, [file name=mDF_PourKim41.zip size=21736]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/mDF_PourKim41.zip[/file]
 

Pièces jointes

  • mDF_PourKim41.zip
    21.2 KB · Affichages: 23

KIM

XLDnaute Accro
Bonjour Didier myDearFriend, et le forum
Merci pour ta modif, c'est exactement ce que je souhaite.
Elle fonctionne tres bien avec une feuille de 50 000 lignes.
je dois rajouter une nouvelle feuille de regroupement 'Groupes Par TYPE/NOM/REF' c-a-d colE/colD/colC de DATA

STP Si tu as quelques instants, peux-tu m'expliquer le principe. Cela m'evite de te deranger, et Si un jour on me demande de rajouter un 4eme niveau de cascade pour le regroupement comment faire?
Merci d'avance
Bien amicalement
KIM [file name=mDF_PourKim42.zip size=17056]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/mDF_PourKim42.zip[/file]
 

Pièces jointes

  • mDF_PourKim42.zip
    16.7 KB · Affichages: 17

Dan

XLDnaute Barbatruc
Bonjour Kim,

Comme tu parlais de TCD, j'ai passé mon temps à faire ce fichier.

Vois si cela peut te servir en complément à ce que mon ami myDearFriend t'a concocté.

A bientôt

;) [file name=Dan_PourKim41.zip size=20102]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Dan_PourKim41.zip[/file]
 

Pièces jointes

  • Dan_PourKim41.zip
    19.6 KB · Affichages: 20

KIM

XLDnaute Accro
Bonjour Dan, Didier_mDF et le forum,
Dan, effectivement un TCD repond à la demande et tu me l'as bien expliqué dans un autre fil et je t'en remercie.
C'est la forme du tableau resultat de la solution de Didier_mDF qui est utilisé dans une chaine de traitements liées et la collègue m'a demandé de respecter ce modèle.
Merci Dan pour ta disponibilité et ton aide.
et A Didier, merci d'avance si tu peux voir ma derniere demande.
Merci au Forum
Bien amicalement
KIM
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir Kim, Dan, le Forum,

Kim, tu trouveras ci-joint une nouvelle version de ton fichier.

Comme pour la fois précédente, j'ai préféré insérer un nouveau module de code (Regroupement3) spécifique à ta dernière demande et permettant le traitement de l'onglet 'Groupes Par Type_Nom_Ref'. Dans ce module, j'ai tenté de détailler et commenter le code au maximum pour t'aider à comprendre. Par ailleurs, j'ai pensé qu'il était ici, plus simple de ne laisser qu'une seule et unique procédure pour tout le traitement.
J'espère que ces quelques explications pourront t'être utiles... Je pense qu'il convient avant tout d'avoir une certaine habitude des variables tableau pour pouvoir appréhender ce code. Cela dit, ton fichier n'est pas vraiment un exemple simple dans le genre...

Concernant la boucle utilisant l'objet Collection (Db), tu peux également te reporter sur Lien supprimé dans lequel j'avais déjà tenté une explication et laissé un lien pointant sur le site du grand J.Walkenbach à l'origine de la popularité de cette méthode...

Cordialement, [file name=mDF_PourKim43.zip size=21423]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/mDF_PourKim43.zip[/file]
 

Pièces jointes

  • mDF_PourKim43.zip
    20.9 KB · Affichages: 18

KIM

XLDnaute Accro
Bonjour Didier_mDF, bonjour le Forum,
Tant qu'on utilise des car de type texte dans les colonnes à grouper, aucun probleme.
On vient d'integrer de nouveaux codes dans la colonne Type, de format standard mais numerique avec une quote devant pour lancer des comparaisons de type TEXTE.
En appliquant ta macro (regroupement3, ou 2 ou 1), et à la création des feuilles de regroupement, les quotes disparaissent devant les cellules à caracteres numeriques et les cellules ne sont plus de texte mais numerique. Comment faire pour conserver le format d'origine des cellules quand on manipule des tableaux.
Merci de ton aide
Bien amicalement
KIM
 

KIM

XLDnaute Accro
Suite....
Ci-joint un exemple du probleme.
Merci
KIM [file name=mDF_PourKim44.zip size=24651]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/mDF_PourKim44.zip[/file]
 

Pièces jointes

  • mDF_PourKim44.zip
    24.1 KB · Affichages: 18

myDearFriend!

XLDnaute Barbatruc
Bonsoir KIM,

Le problème survient car j'utilise des tableaux variant pour mémoriser et manipuler les données dans cette macro (facilité d'utilisation et gain en rapidité). Je n'avais pas imaginé que tu puisses utiliser des valeurs numériques en références dans ta base.

Je te propose une solution simple : formater les 3 premières colonnes de chaque onglet résultats ('Groupes Par...) au format de cellules 'Texte'. A l'issue du traitement, ça peut se faire manuellement ou par VBA.

Par VBA, par exemple pour l'onglet 'Groupes Par Type_Nom_Ref', ça pourrait faire quelque chose comme ça :
Dim Plage As Range
      With Sheets('Groupes Par Type_Nom_Ref')
            Set Plage = Application.Intersect(.UsedRange, .Range('A:C'))
            Plage.NumberFormat = '@'
      End With
Cordialement,
 

KIM

XLDnaute Accro
Bonjour Didier mDF, et le forum,
C'est une methode qui m'arrage de fixer par vba le format des colonnes.
J'ai intégré ta modif, il ne met en format texte que la cellule A1 et qui devient C1 suite à la rotation en fin de la macro regroupemet3.
1- Comment faire pour lui indique le format texte pour touts les colonnes necessaires,
2- quels sont les parametres de Plage.NumberFormat = '@' pour indiquer d'autres formats: ex nombre, nombre avec 2 decimales, avec ou sans separateur de milliers, personalisé etc...
Merci d'avance Didier et le forum
Bien amicalement
KIM
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir Kim,

Ci-joint une ultime version de ton fichier intégrant le reformatage des 3 premières colonnes de chaque onglet résultats ('Groupes Par...) au format de cellules 'Texte'...

Une ligne de code (+ commentaire) ajouter à chacun des 3 modules :
            'Redéfinit les 3 premières colonnes en type Texte
            Application.Intersect(.UsedRange, .Range('A:C')).NumberFormat = '@'
Concernant les paramètres pour obtenir d'autres formats de cellule : l'aide ainsi que l'enregistreur de macro te permettront de répondre à cette question aisément...

Cordialement, [file name=mDF_PourKim44_20051128004153.zip size=27703]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/mDF_PourKim44_20051128004153.zip[/file]
 

Pièces jointes

  • mDF_PourKim44_20051128004153.zip
    27.1 KB · Affichages: 19

Discussions similaires

Statistiques des forums

Discussions
312 374
Messages
2 087 728
Membres
103 655
dernier inscrit
MOUNIRACH16