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)

Ce ne sont pas juste les feuille de données PAIE-MENS et PAIE-HOR qui sont importées de SAP ?
Celles ci n'ont pas besoin d'être mises en forme de tableau
Maintenant s'il n'y a pas de formule dans les feuilles résultantes vous pouvez aussi essayer avant d'envoyer les TS des :
VB:
ValPlgAju(PlgUti(Feuil4.[A8]), LS) = PlgUti(Feuil4.[A8]).Value
Ou mieux :
VB:
Set Plg = PlgUti(Feuil4.[A8]): ValPlgAju(Plg, LS) = Plg.Value
Remarque: ça implique, en plus de l’absence de formule, qu'il n'y ait jamais rien au delà des résultats.

Mais je ne vois pas en quoi des tableaux Excel sur les seules feuilles résultantes gêneraient leur exportation.
 
Dernière édition:

marfipo

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

re,
toutes les 4 dernières feuiles sont exportés de SAP
je les exportes d'une transaction pour faire ces calcules la avant de les copier dans une nouvelle transaction.

les deux codes gardent la mise en forme mais renvoient une erreur c'est qu'ils ne copient pas les valeurs precedantes comme vous pouvez constater sur le fichier ci-annexé
 

Pièces jointes

  • GrpOrgMarfipo.zip
    208 KB · Affichages: 70
  • GrpOrgMarfipo.zip
    208 KB · Affichages: 65
Dernière édition:

Dranreb

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

Et SAP ne vous envoie pas le nombre de lignes qu'il faut…

Ajoutons cette fonction dans le module Utilit :
VB:
Function LignesAjustées(ByVal Début As Range, ByVal LMax As Long) As Range
Rem. Rectifie le nombre de lignes entières utilisées à partir d'une cellule spécifiée.
'    Début : Cellule ou ligne de début.
'    LMax :  Le nombre de lignes souhaitées.
Set LignesAjustées = PlgUti(Début.EntireRow)
Dim Dif&: Dif = LMax - LignesAjustées.Rows.Count
If Dif > 0 Then
   With LignesAjustées.Rows(LignesAjustées.Rows.Count \ 2 + 1)
      .Copy: .Resize(Dif).Insert xlShiftDown: End With
   Application.CutCopyMode = False
ElseIf Dif < 0 Then
   LignesAjustées.Rows(LignesAjustées.Rows.Count \ 2 + 1).Delete xlShiftUp
   End If
End Function
Tâchez de trouver comment l'utiliser pendant que je mets les utilisations de mon coté…
 
Dernière édition:

marfipo

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

en ajoutant le code sur le module util et l'autre sur la feuile recap comme vous pouvez voir j'ai toujours le même problème
 

Pièces jointes

  • GrpOrgMarfipo.zip
    208.2 KB · Affichages: 66
  • GrpOrgMarfipo.zip
    208.2 KB · Affichages: 66

Dranreb

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

Il y avait une erreur dans la fonction. Reprenez le code corrigé.
Et puis c'est pas le tout: Il faut l'utiliser cette fonction sinon elle ne sert à rien.

Je joins la version actuelle.
 

Pièces jointes

  • GrpOrgMarfipo.xlsm
    341.1 KB · Affichages: 81
  • GrpOrgMarfipo.xlsm
    341.1 KB · Affichages: 75
Dernière édition:

Dranreb

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

Plus maintenant : Les With LignesAjustées(… sont mis.

La solution avec les ValPlgAju(Plg, LS) = Plg.Value ne pouvait pas marcher pour agrandir parce que si le tableau affecté est plus petit que la plage à garnir il met des #N/A

Reste juste que ça met la pagaille dans les numéros de lignes colonne A des feuilles ODA… Est-ce gênant ?
 
Dernière édition:

marfipo

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

Merci beaucoup je vous en serai reconnaissant toute ma vie...
Je suis entrain de vérifier toutes les feuilles j vai les copier sur sap pour voir si il accepte les numéros de cette maniere ou po
 

marfipo

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

malheureusement SAP n'accepte pas la manip je dois avoir les numéros des lignes sur les ODA croissants :confused:
j'ai cru que ça était résolu....est ce que c'est compliqué??
j'ai une autre remarque c'est l'actualisation : par exemple si j'écris quelque chose en bas du tableau ou si je supprime une valeur des données sources ca reste dans les feuilles de destination !!!
j'ai aussi sur la ligne 55 qui se rajoute sur la feuille RECAP avec le total c'est comme le problème d'hier
 
Dernière édition:

Dranreb

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

Non, ce n'est pas très compliqué.
VB:
With LignesAjustées(Feuil4.Rows(8), LS)
   .Columns("L").Value = WorksheetFunction.Index(TS, 0, 1)
   .Columns("H").Value = WorksheetFunction.Index(TS, 0, 3)
   .Columns("A").FormulaR1C1 = "=10*ROW()-70"
   .Columns("A").Value = .Columns("A").Value
   End With
Autrement j'ai une vielle ligne 56, il suffit de l'effacer.
 

marfipo

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

la dernière remarque que j'ai c'est quand par exemple j'écris quelque chose en bas du tableau de n'importe quelle onglet de destination et sur n'importe quelle cellule quand je clique par la suite sur recap et je reviens sur la feuille de destination ça enleve la mise en forme de la dernière ligne et ca garde en meme temps ce que j'ai ecrit alors qu'il devait enlever ce que j'ai ecrit en bas d tableau
 

marfipo

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

vous trouverez dans le fichier ci-joint ce que je veux rajouter en bas du tableau (j'ai pas cliquer sur la feuille RECAP)
je peux pas être libre d'écrire ce que je désire en bas du tableau sans fausser les calcules ??
 

Pièces jointes

  • GrpOrgMarfipo 1.zip
    209.9 KB · Affichages: 81
  • GrpOrgMarfipo 1.zip
    209.9 KB · Affichages: 81

Dranreb

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

Non. On n'a aucun critère permettant de savoir qu'une info présente à la fin dépasse du tableau existant ou en fait partie.
Elle fait donc partie de ce tableau à agrandir ou raccourcir au nombre de lignes exact nécessaire pour accueillir les TS.

À l'ouverture du classeur il s'avère qu'il y aurait un critère: vous avez laissé une ligne vide après.
Il serait donc possible de rectifier LignesAjustées de manière à ce qu'il s'appuie sur Début.CurrentRegion au lieu de PlgUti(Début.EntireRow). Mais il faudrait la rectifier derrière pour qu'elle parte bien de la cellule spécifiée et non pas de la CurrentRegion.
 
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 915
Membres
101 838
dernier inscrit
Christelle.B86