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:

marfipo

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

comment je peux faire pour cela ??
on est obligé de rajouter une colonne dans l'onglet recap entre la colonne A et B ou on metera les données de la colonne D de l'onglet PAIE-MENS et une autre colonne entre G et H de la colonne de l'onglet Recap ou on mettera les données de la dolonne D de l'onglet PAIE-HOR et apres les importer pour la demande 5 ou on peut éviter ça et les appeler directement ?? comment je peux faire ??

ci-joint le dernier fichier modifié pour que vous travailler sur la demande 5 si vous voulez...

Merci encore
 

Pièces jointes

  • GrpOrgMarfipo.zip
    204.1 KB · Affichages: 25
  • GrpOrgMarfipo.zip
    204.1 KB · Affichages: 28

Dranreb

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

Vous n'êtes certes pas obligé de passer par les récap pour exploiter les données sources selon des découpages plus détaillés que ceux des récap !
Ce n'est pas que seulement que vous n'y êtes pas obligé, d'ailleurs, c'est que c'est impossible si vous n'avez pas envie de voir ces détails dans les récap !
 
Dernière édition:

marfipo

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

je n'ai pas de problème de rajouter une autre colonne dans l'onglet RECAP ou on peu importer les données de la colonne D de l'Onglet PAIE-MENS...mais comment faire pour que ca nous aide pour le Point 5 ???
si non qu'elle est la meilleur solution ??
 

Dranreb

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

À un certain moment il faut faire ce que je décris au poste #45
Et le mieux à mon avis c'est de le faire en vue de construire le résultat définitif souhaité dans les feuilles visées.
Je ne sache pas que quoi que ce soit d'autre vienne d'ailleurs que des feuilles sources.
 

Dranreb

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

À un certain moment il faut faire ce que je décris au poste #45
Et le mieux à mon avis c'est de le faire en vue de construire le résultat définitif souhaité dans les feuilles visées.
Je ne sache pas que quoi que ce soit d'autre vienne d'ailleurs que des feuilles sources.

Peut être ne serait il pas inutile, pour se fixer les idées, de construire des données de moins de 10 lignes et de faire à la main le modèle de résultat souhaité en conséquence, sans s'appuyer sur ce qu'il y a ou non dans d'autres feuilles comme RECAP.
 
Dernière édition:

Dranreb

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

Ah non,ça devrait être :
For Each EOTP In Données
| For Each PointPaie In EOTP.Contenu
| | For Each Détail in PointPaie.Contenu

À priori rien entre les 2 premiers For Each
Mais versez EOTP.Id aussi quelque part à chaque ligne ajoutée
(sauf si vous ne vouliez le voir apparaître que sur la 1ère ligne)
 
Dernière édition:

marfipo

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

je suis bloqué j'ai toujours le même problème qu'est ce que je dois changer ou rajouter??
 

Pièces jointes

  • Sans titre.jpg
    Sans titre.jpg
    39.8 KB · Affichages: 36
  • Sans titre.jpg
    Sans titre.jpg
    39.8 KB · Affichages: 34

Dranreb

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

Ajouter: , EOTP aux Next
Il est toujours encore déclaré au moins ?
Je n'ai jamais dit qu'il devait disparaitre:
Seulement qu'au lieu de fournir directement les Détail il fournirait un SsGroup intermédiaire supplémentaire qui lui les fournira.
Remontez le For Each PointPaie juste derrière le for Each EOTP: LS doit être incrémenté à chaque PointPaie, non ?

Le Redim TS au début ne va plus. Mettez 5000 au lieu de Données.Count car ça ne compte que les EOTP, plus le nombre de lignes dont on aura besoin. Par contre vous préciserez LS comme second paramètre à ValPlgAju pour qu'il ne prenne que le nombre de lignes jusqu'où on aura rempli.
 
Dernière édition:

marfipo

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

Bonjour Dranreb,
ca fait plus que 3 heures j'essaie d'écrire le code pour la 5ème demande..j'arrive pas..
ci-joint le fichier avec le code que j'ai essayé d'ecrire...je ne sais pas ce qui me manque vu que je ne comprends pas tout ce que me demandez de faire...
le code que j'ai rajouté à faussé toutes les valeurs de l'onglet recap
merci de me le modifier s'il te plait
 

Pièces jointes

  • GrpOrgMarfipo.zip
    215.9 KB · Affichages: 28
  • GrpOrgMarfipo.zip
    215.9 KB · Affichages: 26

Dranreb

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

Bonjour.

C'est normal que ça modifie la Récap puisque vous envoyez TS dans RécapMens au lieu de l'envoyer dans une plage à partir de Feuil6.[M8]
Vous tenez vraiment à ce que ce ce soit fait à la suite toujours dans cette procédure ?
Enfin bon…
Je ne sais pas où vous voulez mettre les valeurs que vous totalisez alors je les envoie aux colonnes O,P,Q.
VB:
…
LS = 0

Dim PointPaie As SsGroup

Set Données = GroupOrg(PlgUti(Feuil1.[A2]), 30, 4)
ReDim TS(1 To 5000, 1 To 5)
For Each EOTP In Données
   For Each POINTPAIE In EOTP.Contenu
      LS = LS + 1
      TS(LS, 1) = EOTP.Id
      TS(LS, 2) = POINTPAIE.Id
      For Each Détail In POINTPAIE.Contenu
         TS(LS, 3) = TS(LS, 3) + Détail(13)
         TS(LS, 4) = TS(LS, 4) + Détail(20)
         TS(LS, 5) = TS(LS, 5) + Détail(23)
         Next Détail, POINTPAIE, EOTP
Feuil6.[M8].Resize(LS, 5).Value = TS
End Sub
Recadrez aussi la référence du nom "RécapMens"
 
Dernière édition:

marfipo

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

re,
je veux juste remplacer les valeurs qui sont dans la colonne Q dans la colonne D et supprimer les autres valeurs des colonnes O.P et Q
et les valeurs de la colonne N doivent être lister d'une manière croissante et non pas les valeurs de la colonne M
 
Dernière édition:

Dranreb

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

Bon alors comme ça :
VB:
Dim PointPaie As SsGroup, TMon()

Set Données = GroupOrg(PlgUti(Feuil1.[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) = 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
Feuil6.[M8].Resize(LS, 2).Value = TS
Feuil6.[D8].Resize(LS).Value = TMon
End Sub
 

marfipo

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

super,
la demande 5 est résolue a 100%,
maintenant je passe a la dernière demande qui est différente un peu de la demande 5 dans le dernier point.

pour rappel la demande 6 est :

sur l'onglet CAP Congés (Hor) je veux que la cellule M7 egale la cellule M7 de l'onglet RECAP, (CAD M7=MATX.400210.DS.CH)
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 sur la colonne N(a partir de N7) les données de la colonne D de l'onglet PAIE-HOR sauf pour la valeur de N7 qui doit correspondre au G7 de l'onglet RECAP. (car M7=MATX.400210.DS.CH et cet EOTP n'existe pas dans la colonne D, c'est pourquoi je veux on prends les valeurs qui correspond a G7 de l'onglet RECAP qui est MATX.400212.99.MO et qui existe dans la colonne D de l'onglet PAIE-HOR)
 

Discussions similaires

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

Membres actuellement en ligne

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 846
dernier inscrit
Silhabib