[Resolu]Retraiter des bases, les réunir et faire un TCD

yoldas

XLDnaute Nouveau
Bonjour à tous,

Je viens vous solliciter car je n'ai que trop peu de connaissances en VBA pour atteindre mon but sur ce coup :(

Alors je vous explique mon cas.

Je souhaite créer un fichier unique dans lequel les utilisateurs viendraient rajouter leur fichier extrait du logiciel pour en obtenir une synthèse. Il s'agit d'information à caractère comptable (rémunération d'une catégorie de notre personnel).

Dans le fichier joint, vous pourrez voir que le fichier comporte déjà plusieurs onglets pour des raisons propres à la gestion de projets en cours.

En tout état de cause, voici donc comment ce fichier devra être utilisé.

L'utilisateur récupère son extraction, l'insère dans mon fichier et renomme l'onglet selon l'année en cours.
Mon fichier compte donc déjà des onglets 2008, 2009, 2010, 2011 et 2012.
Pour les MàJ de l'année en cours, il supprime l'onget -mettons 2012- à mettre à jour, et le remplace par son extraction.

Une fois ces manips inévitables effectuées, j'aimerai qu'une macro se lance et exécute les étapes suivantes :

1-Insérer une colonne en A:A et remplir les cellules de l'année qui concerne l'onglet.
Limites constatées :
- à cause des cellules fusionnées en première ligne, le bout de code VBA que j'avais construit n'insère pas une mais plusieurs colonnes ;
- une fois les onglets des années précédentes à l'année en cours retraitées, plus besoin d'y revenir ;
- le nombre de ligne d'une année (d'un onglet) à l'autre est différent, donc la macro devra tester le contenu de la cellule Mois avant de remplir la première colonne
- à chaque MàJ, donc à chaque nouvelle insertion d'onglet 2012, 2013, etc...(tout au long du cycle de vie de ce fichier), la macro ne devra s'exécuter que sur l'onglet le plus récent.

Une fois ce retraitement effectué, il faudrait récupérer le contenu de tous les onglets, sauf le titre et aller le recopier dans l'onglet Journal_PNP.

Pour finir, faire un TCD avec les codes analytiques en ligne, et une première colonne qui correspondrait à l'année la plus récente, et une seconde au cumul de toutes les années restantes. Données sommées, la masse salariale.

Enfin, copier/collage spécial du contenu de ce TCD en valeur pour pouvoir réutiliser ces données dans le cadre d'une recherchev dans un autre tableau. Tout cela dans l'onglet synthèse. Le TCD à la poubelle une fois qu'on a les valeurs.

Pour résumé, pour ceux qui m'ont lu jusqu'au bout :
1-consolider des informations de même nature issues de plusieurs années de gestion ;
2-en faire un TCD avec les données de l'année en cours et celles des années passées (cumulées) ;
3-n'en garder que les valeurs.

Merci à vous,
Mes amitiés
 

Pièces jointes

  • Fichier_excel.zip
    156.3 KB · Affichages: 30
  • Fichier_excel.zip
    156.3 KB · Affichages: 56
  • Fichier_excel.zip
    156.3 KB · Affichages: 29
Dernière édition:

yoldas

XLDnaute Nouveau
[Résolu]Retraiter des bases, les réunir et faire un TCD

Ca fonctionne JCGL.

Par contre, si vous avez deux minutes, j'aimerai bien comprendre.
A quel moment du code, cela a provoquer cette erreur (quelle ligne en particulier) parce que jusqu'à présent y'avait aucun problème sur cet onglet Journal_PNP.

En tout cas, je vous remercie très sincèrement tous les deux pour l'aide apportée.
Je vais terminer en ajoutant des sommeprod dans l'onglet Synthèse et terminé !

Bon fin de week-end :)

PS : je passe le sujet en résolu
 

Bebere

XLDnaute Barbatruc
Re : [Resolu]Retraiter des bases, les réunir et faire un TCD

Yoldas tu vas trop vite relis ton code
With Worksheets(CStr(i))
.Activate
DerL = .Range("A65536:AH65536").End(xlUp).Row'ligne fautive
DerL = .Range("AH65536").End(xlUp).Row'ligne correcte
.Range("A3:AH" & DerL).Copy Destination:=Worksheets("Journal_PNP").Range("B" & ld)
les 2 lignes suivantes doivent donner une erreur
If = Worksheets("Journal_PNP").Range("B65536").End(xlUp ).Row
Worksheets("Journal_PNP").Range("A" & ld & ":A" & lf).Value = i
 

Statistiques des forums

Discussions
315 085
Messages
2 116 071
Membres
112 648
dernier inscrit
Otete Christian