Microsoft 365 Optimisation de formule

guiyom

XLDnaute Junior
Bonsoir,

J’aurais besoin de vos lumières ou tout simplement d’un regard extérieur à la situation que je rencontre actuellement.
J’ai un tableau disposant d’une base de données conséquente alimenté continuellement par un USF.
Le problème étant que je souhaite synthétiser cette base de données en comptant les doublons en fonction de deux critères, l’année ainsi que le nom et prénom.
Je souhaite pouvoir afficher le résultat synthétisé via un USF.
J’ai réussi à bricoler une formule qui me donne bien le résultat souhaité seulement celle-ci ralentie considérablement les nouvelles entrées dans la BD, je souhaite donc pourvoir en changer.

Peut-être avez-vous une méthode plus « propre » afin d’obtenir le résultat souhaité ?

Bien cordialement

Vous trouverez en PJ un fichier de test
 

Pièces jointes

  • TESTµ1.xlsm
    35.9 KB · Affichages: 4

guiyom

XLDnaute Junior
Bonsoir,

Merci pour votre réponse rapide.

Je n’avais jusqu’à ce jour jamais utilisé la fonction de tableau croisé dynamique et c’est aujourd’hui chose faite grâce à vous.

J’ai réussi à reproduire votre réalisation sur le tableau original cependant je remarque que le résultat ne semble pas dynamique.

Dans le cas ou une nouvelle ligne est inséré dans la base de données le TCD ne semble pas s’actualiser avec les nouvelles informations.

C’est peut-être une propriété du TCD ? ou alors j’ai mal réalisé quelque chose.

Bien cordialement.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Dans le TCD vous faites clic droit puis Actualiser.
ou en automatique quand on sélectionne la feuille TCD avec la macro à mettre dans la feuille :
VB:
Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    Range("D10").Select
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
    Range("A1").Select
End Sub
 
Dernière édition:

guiyom

XLDnaute Junior
Au top, cela fonctionne parfaitement !

J'ai juste rajouter le code suivant :
VB:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)

Application.EnableEvents = False
Sheets("Feuil1").PivotTables("TCD").RefreshTable
Application.EnableEvents = True

End Sub

Afin d'automatiser l'actualisation du TCD.

Merci beaucoup pour votre aide.

Bien cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 209
Messages
2 086 259
Membres
103 167
dernier inscrit
miriame