XL 2013 Regroupement de données selon plusieurs critères..

anri0610

XLDnaute Junior
Bonjour a tous,

Mon soucis:
effectuer la somme des valeurs de la colonne E si/quand les valeurs des colonnes A B C D sont toutes identiques,
j'aurais pourtant essayer d être clair... ><

je vous joint le fichier concerne, sachant que les valeurs diffèrent toutes a chaque travail donc impossible de définir une règle pour une quelconque valeur.

ex/
maintenant:

AW-1 110 25 2100 10
AW-1 110 25 2100 10
AW-1 110 25 2100 10
AW-1 110 25 2100 10
AW-1 110 25 2100 10
AW-3 110 25 800 10

résultat souhaite:

AW-1 110 25 2100 50
AW-3 110 25 800 10

je souhaiterai effectuer ce résultat avec une macro,
et ne pas transformer la mise en forme des données pour un tableau dynamique.
est-ce seulement possible ?
 

Pièces jointes

  • TEST.xlsx
    10 KB · Affichages: 50

anri0610

XLDnaute Junior
Bonjour,

merci Dranreb !

vraiment désoler , je viens a nouveau d'essayer en copiant le code mais même en essayant de trouver le problème j'ai toujours une erreur,
pourriez vous m'envoyer le fichier avec la macro configurée s'il vous plait?

ps: Le resultat est super !!! Serait il possible de garder l'ordre décroissant au moment de la mise en forme sur la droite?
pour avoir toujours les valeur les plus élevées dans l'ordre ?
je ne sais pas si je suis clair :s

ça donnerait ,

AW-1
110
25
2100
50

AW-3
110
25
800
10

AW-1
108
25
1750
50

Etc.
La valeur la plus importante(ordre de logique décroissante) est la colonne B, ensuite dans l'ordre C, D, E, et enfin A.

L'ordre de la forme actuelle est bon mais je souhaitais additionner les quantités pour ensuite le basculer dans le même ordre
sous la forme de droite !

Je file, je consulte les message demain a la première heure .(heure d'ici)!merci!
 

Dranreb

XLDnaute Barbatruc
Vous ne me dites toujours pas de quelle erreur il s'agit.
Vous avez copié le code dans un autre projet VBA ? Y avez vous alors aussi bien glissé le module MGigogne et le module de classe SsGr ? Par ailleurs une fonction du module MGigogne a besoin de la référence Microsoft Scripting Runtime.
La macro rectifiée avec les ordre de classement demandés (sauf E qui est une somme calculée))
 

Pièces jointes

  • GigogneAnri0610.xlsm
    57.6 KB · Affichages: 31

job75

XLDnaute Barbatruc
Bonjour anri0610, le fil,
je souhaiterai aussi avoir les somme et donc résultats a la place des données de la colonne E si possible,
Il suffit alors de masquer la colonne E :
Code:
Sub CréerSupprimerSousTotal()
Application.ScreenUpdating = False
With Feuil1 'CodeName de la feuille
    .Rows.Hidden = False: .Columns.Hidden = False 'affihe tout
    .Columns(6).ClearContents 'RAZ
    With .[A1].CurrentRegion
        If .Rows.Count = 1 Then Exit Sub
        With .Offset(1).Resize(.Rows.Count - 1).Columns(6)
            If .Parent.DrawingObjects(1).Text Like "Créer*" Then
                .Cells(0, 1) = "S/TOTAL" 'titre
                .Formula = "=IF(A2&B2&C2&D2<>A1&B1&C1&D1,SUMIFS(E:E,A:A,A2,B:B,B2,C:C,C2,D:D,D2),"""")"
                .Value = .Value 'supprime les formules
                On Error Resume Next 'si aucune SpecialCell
                .SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True 'masque les lignes des cellules vides
                .Columns(0).Hidden = True 'masque la colonne E
            End If
        End With
    End With
    .DrawingObjects(1).Text = IIf(.DrawingObjects(1).Text Like "Créer*", "Supprimer", "Créer") & " S/TOTAL"
End With
End Sub
Fichier (2).

A+
 

Pièces jointes

  • TEST VBA(2).xlsm
    25.4 KB · Affichages: 30

anri0610

XLDnaute Junior
Bonjour !

pardon je vous joint le print screen,
je suis sur windows 7, excel 2013,
j'obtient une erreur de compilation, désoler je ne saurai quoi modifier..

job75> merci super mais pour la suite j'obtient ce resultat.
 

Pièces jointes

  • gigogne erreur 1.png
    gigogne erreur 1.png
    171.8 KB · Affichages: 24
  • probleme vba 2.png
    probleme vba 2.png
    67.5 KB · Affichages: 23

Dranreb

XLDnaute Barbatruc
Bonsoir.
Moi non plus je ne sais pas quoi modifier, parce que chez moi il n'y a aucune erreur dans cette instruction Dim.
Et en mettant la déclaration de Préfiltré avant celle de Tronquer, ça fait pareil ? Non mais ça n'a pas de sens. Je n'ai pas la moindre idée du problème qu'il peut y avoir. Peut être des caractères non visibles à la place des espaces, je ne sais pas du tout.
Vous pouvez toujours essayer de le joindre tel qu'il est chez vous, que je voie s'il a été altéré d'une quelconque façon, de telle sorte qu'il y aurait aussi une erreur chez moi, maintenant.
Édition: je viens quand même de voir un truc: c'est le 1er nom de variable comportant des lettres accentuées. Alors est-ce que par hasard sur votre système elle ne seraient pas considérées comme des lettres ???
 
Dernière édition:

anri0610

XLDnaute Junior
Bonjour,
merci, je me permet de vous renvoyer un screen car oui il y a de fortes chances que le problème vienne de la police/écriture,
pourriez vous me faire un screen de votre compilation s'il vous plait?
de manière a ce que je puisse corriger si erreurs il y a.
(je ne vois pas de ??? mais peut être de lettres qui ne sont pas passées tel quelles ..)

ps: si la langue d'excel change ne faut-il pas que tout le code soit en anglais ?
 

Pièces jointes

  • gigogne erreur compilation.png
    gigogne erreur compilation.png
    217.4 KB · Affichages: 15

Dranreb

XLDnaute Barbatruc
Bonjour.
Je ne vois aucun changement par rapport au précédent. Qu'est-ce que vous attendez, si vous en êtes si convaincu, pour essayer en remplaçant les identifications de variables et de procédures à lettres accentuées en noms en étant dépourvus ?

Édition: Important: Il manque le module de classe SsGr.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Au cas où: Ma version dépourvue de lettre accentué dans les identifiants.
Mais si c'était ça, je trouve ça complètement anormal: je peux très bien y utiliser n'importe quelle lettre, peu importe qu'elle existe ou nom dans le français, c'est une lettre à partir du moment où elle a deux versions différentes, en majuscule et en minuscule. C'est même mon système pour détecter si un caractère est ou non une lettre. D'ailleurs pleins d'autre caractères y sont acceptés aussi, même si ce ne sont pas des lettres, je pense notamment à certains opérateurs mathématiques lorsqu'ils ne sont pas interprétés comme tels par VBA.
 

Pièces jointes

  • GigogneAnri0610.xlsm
    56.6 KB · Affichages: 20

job75

XLDnaute Barbatruc
Re,

Bon si maintenant vous voulez les résultats transposés c'est autre chose :
Code:
Sub Grouper()
Dim t, ub&, a(), i&, k%, n&, x$, j&
With Feuil1 'CodeName de la feuille
    t = .[A1].CurrentRegion.Resize(, 5) '5 colonnes
    ub = UBound(t)
    ReDim a(1 To ub * UBound(t, 2), 1 To 1)
    For i = 2 To ub
        x = t(i, 1) & t(i, 2) & t(i, 3) & t(i, 4)
        For k = 1 To 5
            n = n + 1: a(n, 1) = t(i, k)
        Next
        For j = i + 1 To ub
            If t(j, 1) & t(j, 2) & t(j, 3) & t(j, 4) <> x Then Exit For
            a(n, 1) = a(n, 1) + t(j, 5)
        Next
        i = j - 1
    Next i
    With .[G2] 'cellule à adapter
        If n Then .Resize(n) = a
        .Offset(n).Resize(Rows.Count - n - .Row + 1).ClearContents 'RAZ en dessous
    End With
    With .UsedRange: End With 'actualise la barre de défilement verticale
End With
End Sub
La macro est très rapide car elle utilise des tableaux VBA.

Fichier joint.

A+
 

Pièces jointes

  • Grouper transposer(1).xlsm
    25.2 KB · Affichages: 18
Dernière édition:

Dranreb

XLDnaute Barbatruc
La fonction Gigogne est très rapide aussi. Elle n'utilise que des tableaux VBA, tris en mémoire par fusions et Collection. Une fois qu'on l'a dans un projet, elle peut servir à plein d'autres choses. Elle est microscopique en regard de la programmation des bibliothèques Excel et autres, dont 99% ne servent jamais (même si ce ne sont pas les mêmes 99% d'un utilisateur à l'autre)
(Elle est disponible en complément .xlam si ça vous intéresse, et si vous ne voulez plus voir que la programmation d'application et non plus celle de service)
 

Dranreb

XLDnaute Barbatruc
Vous n'avez aucune idée des usines à gaz que sont les méthodes de la bibliothèque Excel :rolleyes:
La complexité de la programmation de service n'a aucune importance, du moment qu'elle est au point. Qu'on puisse la voir ou non n'y change rien.
Et les macros d'application qui utilisent ma fonction Gigognes sont généralement les plus courtes possibles.
 

anri0610

XLDnaute Junior
Bonjour,
merci Dranreb c’était bien l’écriture le soucis, qui se modifiait rien qu'en copiant le fichier, j'ai opter pour un copier coller et la ça a pris,
cela m'a permis d'avancer,
voici mon erreur suivante..
 

Pièces jointes

  • gigogne compilation 2.png
    gigogne compilation 2.png
    256.2 KB · Affichages: 16

anri0610

XLDnaute Junior
Je vous joint a nouveau le fichier test et mon classeur actuel de macros. (TEST.xlsx/PERSONAL.xlsm)

(probleme trier 1.png/probleme trier 2 .png)
j'aurai également un autre soucis avec la fonction trier (que j'ai incrémentée a la macro CAD) qui dans mon cas actuel ne prend pas en compte la colonne C, et donc me mélange les données quand elles diffèrent,
j'ai bien créer une macro que j'ai nommer Mtrier qui fonctionne,
mon seul problème est que cela me donne un code active sheet avec le nom de la feuille ,
sauf que le nom du fichier change a chaque fois, il me faudrait alors le même résultat sans affectation de nom de feuille ou fichier si possible.

(SYU201808091004.xlsm/fonction regrouper.png)
une autre question si vous le voulez bien, serait ce possible de regrouper les données de la colonne A
idem que pour la somme de la colonne E ,
lorsque les données des colonnes B C D sont identiques.

merci par avance!

ps: je me suis permis d’évoquer d'autres problèmes lies mais,
si vous juger qu'il serait nécessaire de créer une différente conversation,
pas de soucis je re-exposerai mon problème par la suite.
 

Pièces jointes

  • TEST.xlsx
    10 KB · Affichages: 32
  • PERSONAL.xlsm
    50.4 KB · Affichages: 32
  • probleme trier 1.png
    probleme trier 1.png
    84.8 KB · Affichages: 25
  • probleme trier 2 .png
    probleme trier 2 .png
    139.3 KB · Affichages: 33
  • SYU201808091004.xlsm
    23.9 KB · Affichages: 32
  • fonction regrouper.png
    fonction regrouper.png
    84.2 KB · Affichages: 30

Discussions similaires

Réponses
36
Affichages
1 K

Statistiques des forums

Discussions
311 724
Messages
2 081 937
Membres
101 844
dernier inscrit
pktla