Lister Sans Doublons Et Totalisation (VBA) (Résolue)

marfipo

XLDnaute Occasionnel
Bonjour à tous,
je reviens vers vous comme je suis novice en VBA pour que vous m'aidiez a compléter mon petit projet
sur le fichier ci-joint j'ai une base de donnée qui se trouve sur les feuilles PAIE-MENS & PAIE-HOR .
ce que je souhaite avoir c'est :

1- sur l'onglet Recap je veux lister sans doublons sur la colonne A (a partir de A7) les données qui se trouve sur la colonne AD de l'onglet PAIE-MENS, ensuite je veux totaliser sur les colonnes B,C et D (a partir de B7, C7 et D7) de l'onglet Recap, les données qui se trouves sur les colonnes M,T et W de l'onglet PAIE-MENS

2- sur l'onglet Recap je veux lister sans doublons sur la colonne G (a partir de G7) les données qui se trouve sur la colonne AD de l'onglet PAIE-HOR, ensuite je veux totaliser sur les colonnes H,I et J (a partir de H7, I7 et J7) de l'onglet Recap, les données qui se trouves sur les colonnes M,T et W de l'onglet PAIE-HOR

3-sur l'onglet ODA MENS je veux copier sur la colonne L (a partir de L8) les données de la colonne A( a partir de A7) de l'onglet RECAP,
et je veux copier sur la colonne H (a partir de H8) de l'onglet ODA MENS, les données de la colonne C( a partir de C7) de l'onglet RECAP

4-sur l'onglet ODA HOR je veux copier sur la colonne L (a partir de L8) les données de la colonne G( a partir de G8 et non pas G7) de l'onglet RECAP,
et je veux copier sur la colonne H (a partir de H8) de l'onglet ODA HOR, les données de la colonne I (a partir de I8 et non pas I7) de l'onglet RECAP
et je veux copier sur la colonne O (a partir de O8) de l'onglet ODA HOR, les données de la colonne H (a partir de H8 et non pas H7) de l'onglet RECAP

5- sur l'onglet CAP Congés (Mens) je veux copier sur la colonne M (a partir de M7) les données de la colonne A( a partir de A7) de l'onglet RECAP,
Et je veux copier sur la colonne D (a partir de D7)de l'onglet CAP congés (Mens), les données de la colonne D( a partir de D7) de l'onglet RECAP,
Ensuite je veux lister sans doublons sur la colonne N( a partir de N7) de l'onglet CAP congés (Mens) les données de la colonne D de l'onglet PAIE-MENS qui correspondent au données de la colonne M de l'onglet CAP congés (Mens).

6- sur l'onglet CAP Congés (Hor) je veux que M7 egale M7 de l'onglet RECAP, ensuite je veux copier sur la colonne M (a partir de M8) les données de la colonne G (a partir de G8) de l'onglet RECAP,
Et je veux copier sur la colonne D(a partir de D7) de l'onglet CAP congés (HOR), les données de la colonne J (a partir de J7) de l'onglet RECAP,
puis je veux lister sans doublons sur la colonne N( a partir de N7) de l'onglet CAP congés (HOR) les données de la colonne D de l'onglet PAIE-HOR qui correspondent au données de la colonne M de l'onglet CAP congés (HOR) sauf pour N7 qui doit correspondre au G7 de l'onglet RECAP.

Merci d'avance
 

Pièces jointes

  • ListerSansDoublons.xlsx
    262.3 KB · Affichages: 103
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Lister Sans Doublons Et Totalisation (VBA)

Ben faites une structure adaptée à ce qu'il vous faut.
Ce n'est pas une obligation d'explorer tous les .Contenu, vous pouvez très bien faire un test sur un .Id d'un SsGroup pour ne pas traiter son contenu.

Vous avez maintenant assez d'exemples pour comprendre comment fabriquer une collection avec la fonction GroupOrg et l'explorer. Relisez les commentaires explicatifs pour bien comprendre en quoi la programmation qu'on a réalisée les applique.
 
Dernière édition:

marfipo

XLDnaute Occasionnel
Re : Lister Sans Doublons Et Totalisation (VBA)

Bonjour ma pomme,
merci beaucoup à vous aussi pour toutes vos réponses mais c'est vraiment pas ce que je désire vous avez changé toutes les modifications du dernier fichier ou j'avais besoin de deux demandes je ne sais pas si vous avez fait la remarque.

par contre je suis sur la dernière demande avec dranreb pour compléter ce projet...
 

marfipo

XLDnaute Occasionnel
Re : Lister Sans Doublons Et Totalisation (VBA)

Re dranreb,
j'ai réussi a trouver la faille c'était LS=0 qui manquait comme vous pouvez constater sur le fichier ci-joint que j'ai modifié
maintenant sur la colonne M de l'onglet CAP Congés (Hor) je veux que les cellules M7, M20 et M21 et toutes les celulles de cette colonne qui prennent la valeur MATX.400210.99.MO prennent la valeur de la cellule M7 de l'onglet RECAP qui est MATX.400210.DS.CH et non pas MATX.400210.99.MO

comment faire ?
 

Pièces jointes

  • GrpOrgMarfipo.zip
    206.8 KB · Affichages: 56
  • GrpOrgMarfipo.zip
    206.8 KB · Affichages: 77

Dranreb

XLDnaute Barbatruc
Re : Lister Sans Doublons Et Totalisation (VBA)

Faisons le comme ça :
VB:
LS = 0

Dim EOTP99MO As String, EOTPCongésHOR As String
EOTP99MO = Me.[G7].Value: EOTPCongésHOR = Me.[M7].Value
Set Données = GroupOrg(PlgUti(Feuil2.[A2]), 4, 30)
ReDim TS(1 To 5000, 1 To 2), TMon(1 To 5000, 1 To 1)
For Each PointPaie In Données
   For Each EOTP In PointPaie.Contenu
      LS = LS + 1
      TS(LS, 1) = IIf(EOTP.Id = EOTP99MO, EOTPCongésHOR, EOTP.Id)
      TS(LS, 2) = PointPaie.Id
      For Each Détail In EOTP.Contenu
         TMon(LS, 1) = TMon(LS, 1) + Détail(23)
         Next Détail, EOTP, PointPaie
Feuil7.[M7].Resize(LS, 2).Value = TS
Feuil7.[D7].Resize(LS).Value = TMon
End Sub
 

marfipo

XLDnaute Occasionnel
Re : Lister Sans Doublons Et Totalisation (VBA)

super c'est exactement ce que je voulais...
maintenant dans le fichier ci-joint sur les lignes 20, 21 et 22 de l'onglet CAP Congés (Hor) ils ne prennent pas la même mise en forme que les autres lignes du tableau

donc si par exemple je rajoute des nouvelles informations sur les les feuilles de sources (PAIE-MENS & PAIE-HOR)
d'autres lignes se rajoutent sur les onglet ODA-MENS, ODA-HOR, CAP Congés (Mens) et CAP Congés (Hor)
je veux que ces lignes qui se rajoutent sur ces feuilles aient la même mise en forme et les mêmes valeurs aussi bien que les formules qui sont répétés sur les lignes du tableau
 

Pièces jointes

  • GrpOrgMarfipo.zip
    207.5 KB · Affichages: 74
  • GrpOrgMarfipo.zip
    207.5 KB · Affichages: 73
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Lister Sans Doublons Et Totalisation (VBA)

Oui. On s'est juste contenté de remplir des colonnes, un peu pour parer au plus pressé. Mais j'ai vu ce problème venir depuis longtemps.
Et malheureusement dans son état actuel ValPlgAju ne permettra pas de le résoudre partout.
Ce que je vous propose c'est de commencer par mettre les plages résultantes sous forme de tableaux Excel.
Dans les codes, avant chaque déchargement de TS, supprimez environ 500 lignes à partir de la .Row(LigneDébut + LS), pour le cas où il y aurait moins de lignes qu'au traitement précédent.
Ça devrait régler le problème, car lorsqu'on écrit juste en dessous de données mises en forme de tableau, Excel les ajoute à celui ci en reconduisant automatiquement les formats et les formules.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Lister Sans Doublons Et Totalisation (VBA)

Ça commence dans Excel par onglet Accueil, groupe Style, Mettre sous forme de tableau.

Et dans le code pour la Feuil4 (ODA MENS) par exemple :
VB:
Feuil4.Rows(8 + LS).Resize(500).Delete
Feuil4.[L8].Resize(LS).Value = WorksheetFunction.Index(TS, 0, 1)
Feuil4.[H8].Resize(LS).Value = WorksheetFunction.Index(TS, 0, 3)
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Lister Sans Doublons Et Totalisation (VBA)

Bonsoir marfipo,

(...) merci beaucoup à vous aussi pour toutes vos réponses mais c'est vraiment pas ce que je désire vous avez changé toutes les modifications du dernier fichier ou j'avais besoin de deux demandes je ne sais pas si vous avez fait la remarque (...)

Alors là, je ne comprends pas votre réponse. Ce n'est pas un de vos fichiers construit avec Dranreb que j'ai modifié, mais le premier fichier que j'ai envoyé.

J'ai rajouté un tri des deux premières feuilles (avec l'ancienne codification !) et dédoubler les lignes à plusieurs points de paye en recalculant le total de chaque ligne.
 
Dernière édition:

marfipo

XLDnaute Occasionnel
Re : Lister Sans Doublons Et Totalisation (VBA)

re Dranreb,
la solution que vous m'avez proposé ca me va pas parce que les tableau que j'ai dans mon fichier sont exporté d'un logiciel qui s'appelle SAP alors en faisant la manip de : Mettre sous forme de tableau je ne pourrai pas par la suite copier et coller le tableau sur le logiciel on peu pas le faire juste avec des codes ??

mapomme,
je parlais de votre fichier c'est juste que vous n'avez pas bien compris mes deux dernières demandes en tt cas merci beaucoup pour tout Dranreb a répondu sur presque toutes mes demandes...reste juste la mise en forme si vous suivez bien ce qu'on a écrit
 

Discussions similaires

Réponses
11
Affichages
444
Réponses
13
Affichages
342
Réponses
4
Affichages
256

Statistiques des forums

Discussions
311 720
Messages
2 081 915
Membres
101 838
dernier inscrit
Christelle.B86