Nous avons beaucoup de rapports qui sont générés via VBA & Excel. Seul un faible pourcentage des rapports sont des calculs réels - la majorité du travail est des appels sql et le formatage/écriture de cellules. La plus longue prend plusieurs heures, la majorité prend environ 20-30 minutes chacun. Le code VBA/Excel se branche dans une DLL que les applications de bureau VB6 utilisent - c'est ici que tous les appels sql sont faits. Bien que je sois sûr qu'il y a place à amélioration ici, ce n'est pas ce qui me préoccupe - les applications de bureau sont assez vives.Profileur VB6/VBA gratuit et meilleures pratiques Excel
Deux fonctions VBA sont utilisées en abondance: elles sont appelées GetRange et SetupCell et elles apparaissent presque toujours ensemble. La fonction GetRange est un wrapper pour l'objet Excel.Range. Il prend une feuille, et 4 valeurs pour les étendues de la gamme. Son utilisation principale est de choisir la cellule pour l'édition. Il ne semble pas y avoir beaucoup de chance de l'optimiser, mais est-ce le meilleur moyen?
Son partenaire est SetupCell. Cela prend un objet Excel.Range, du texte et une douzaine de paramètres sur la cellule (police, bordures, etc.). La plupart de ces paramètres sont des booléens optionnels mais encore une fois, cela semble très inutile. Certains d'entre eux peuvent être posthumes, mais certains dépendent des valeurs contenues dans la cellule.
Il y a beaucoup de code contenu dans ces fonctions, principalement si les instructions et le travail ne m'apprécient pas de le poster.
Je suppose que j'ai deux questions: Y at-il une meilleure façon et quel est il et est il y a profileur gratuit que je peux utiliser pour voir si la majeure partie du temps est ici ou dans le dll?
Pas si facile. Les rapports doivent être de longueurs différentes, certaines des cellules doivent être colorées en fonction de la valeur dans les cellules (ou une somme des cellules). –
SSRS sera en mesure de faire face à presque tout ce que vous lui lancez - je seconde cette réponse. –