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:

mapomme

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

Bonjour marfipo :),

La manière dont j'ai écrit le code ne permet pas, sans une refonte totale de tout une partie du code, de répondre à la demande de duplication des lignes comprenant des doublons et des totalisations correspondantes.

Il vaut mieux utiliser ce que suggère Dranreb. C'est du "prêt-à-porter" qu'il nous propose avec une dose de "sur-mesure" :). Essayez, comme suggéré, de faire ne serait-ce qu'un début de commencement de code et de le soumettre.

A+
 

Dranreb

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

Bonjour.
Information. J'ai changé la partie non compilée des commentaires explicatifs de la fonction GroupOrg parce qu'il y avait en deux endroits "Structure interne". C'est peut être plus clair en mettant "TraitementDeSousGroupe" pour la première et "StructureInterne" seulement pour la 2ième. Ça donne ça :
VB:
#If False Then '(Partie non compilée ici)
'     Le résultat de GroupOrg peut être Affecté à une variable :
            Dim MonGroupeOrganisé As Collection, MaPlage As Range
            Set MonGroupeOrganisé = GroupOrg(MaPlage, 1, 2, -3, , 4, 5)
'     Mais on n'en utilisera en général pas, mais plutôt directement GroupOrg(etc. dans la suite.
'     La collection s'explore normalement par :
            Initialisations globales
            For Each SsGrp1 In GroupOrg(MaPlage, etc…) '(ou bien éventuellement In MonGroupOrganisé)
               TraitementDeSousGroupe
               Next SsGrp1
            ConclusionEtTotaux généraux
'     SsGrp1 devant être déclaré As SsGroup.
'     La structure d'un TraitementDeSousGroupe est la suivante :
            Initialisations IntituléRubrique:=SsGrp1.Id
            For Each Élément In SsGrp1.Contenu
               StructureInterne
               Next Élément
            ConclusionEtTotaux pour:=SsGrp1.Id
'     S'il concerne la dernière colonne spécifiée (avant vide, nul etc.), Élément doit être un Variant,
'     et dans la StructureInterne, Élément(C) représentera une valeur de ligne de détail, colonne C.
'     S'il concerne une autre colonne que la dernière spécifiée (avant vide, nul etc.), Élément doit
'     être un SsGroup et la StructureInterne devra à son tour être un TraitementDeSousGroupe.
#End If '(fin des exemples non compilés)
 

marfipo

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

Bonjour Dranreb,
ci-joint le fichier ou j'ai changé la partie structure interne
merci de m'aider en complétant ce fichier afin de répondre sur ma demande si c'est possible
 

Pièces jointes

  • GrpOrgMarfipo (1).zip
    186.6 KB · Affichages: 24
  • GrpOrgMarfipo (1).zip
    186.6 KB · Affichages: 24

marfipo

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

re dranreb,
ca me donne une erreur j'arrive pas a avance ci-joint le fichier avec les modification que j'ai essayé de faire
 

Pièces jointes

  • GrpOrgMarfipo (1).zip
    199.8 KB · Affichages: 20
  • GrpOrgMarfipo (1).zip
    199.8 KB · Affichages: 21

Dranreb

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

Voilà. Maintenant en guise de mise en bouche poursuivez la Worksheet_Change de la Feuil3 (RECAP) pour qu'elle fasse aussi la Récap Hor. C'est facile: c'est pratiquement le même code que pour la récap Mens sauf qu'il faut prendre les données de Feuil2 (PAIE-HOR) au lieu de Feuil1 (PAIE-MENS). On peut réutiliser les mêmes variables.
Ne pas oublier aussi de créer un nom "RécapHor" dans le classeur, référence actuelle =RECAP!$G$7:$J$21, pour accueillir ce résultat.

Ah mais vous avez avancé entre temps, c'est bien. Corrigez l'erreur de feuille et ajouter le Nom dans le classeur.
D'ailleurs je vois une erreur qui était déjà dans mon code: c'est à partir de A2 et non A7 pour les deux sources.
Ensuite le tableau résultant a aussi pour seconde dimension 1 To 4, et c'est aux mêmes colonnes qu'il faut envoyer les données. Le code est vraiment à 99% le même. Il ne reste plus qu'à créer le nom RécapHor et c'est bon.
 
Dernière édition:

marfipo

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

Re Dranreb,
je ne suis plus novice en VBA ;)
ci-joint le fichié modifié j'ai reussi pour la 1ère fois de faire quelque chose en vba grace à toi, j'ai pu réponde sur ma 2ème demande
aide moi maintenant s'il te plait pour la 3ème demande
je commancé dans le code en répetant mon besoin
Merci
 

Pièces jointes

  • GrpOrgMarfipo.zip
    200.4 KB · Affichages: 23
  • GrpOrgMarfipo.zip
    200.4 KB · Affichages: 26

Dranreb

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

Alors pour la suite je pense qu'il vaut mieux le faire dans la Private Sub Worksheet_Activate de la feuille Feui4 (ODA MENS)
Et pour le cas où elle serait activée avant la RECAP, refaire le traitement à partir des données sources, puisque le plis est pris… non ?
Surtout qu'il y aura je pense d'autres renseignement qui viendront dans toutes ces autres colonnes j'imagine…
 

marfipo

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

moi je crois qu'elle serait pas activée avant la recap...je préfére que (ODA Mens) importe les données de la feuille RECAP et non pas des feuilles sources
si tu fais la 3ème demande je vais me casser la tête pour faire la 4ème même si elle est un peu différente

pour rappel la 3ème demande c'était :
****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 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

Merci beaucoup Dranreb
a toi
 
Dernière édition:

Dranreb

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

Il est possible de faire à la fin des boucles de la procédure précédente des instructions du genre :
VB:
Feuil4.[L8].Resize(LS).Value = WorksheetFunction.Index(TS, 0, 1)
Mais autant le dire tout de suite: quand il faudra sortir les éléments des colonnes 30 (AD) et 4 (D) des données sources, si j'ai bien compris, il faudra obligatoirement repartir des données sources.
 

marfipo

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

en copiant ce code a la fin des boucles il me renvoi une erreur

les feuilles ODA Mens et ODA Hor doivent dépendre de la feuille RECAP et non pas des données sources
autremendit dit copier les données de la colonne A et D de l'onglet RECAP sur les colonnes L et H de l'onglet ODA Mens
 
Dernière édition:

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 917
Membres
101 839
dernier inscrit
laurentEstrées