Microsoft 365 Optimisation de formule

  • Initiateur de la discussion Initiateur de la discussion guiyom
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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.
 
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:
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
 
Re,
Il suffit d'actualiser avec un Worksheet_Activate qui a l'avantage de s'exécuter que lorsqu'on sélectionne la feuille.
Un Worksheet_Change s'exécutera à chaque fois que vous modifierez une valeur. D'où plus de ralentissements.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour