dans une plus grande application Excel, (25 feuilles, 50 boutons de commande, 5000 lignes de code, 18 userforms ... taille 12 Mo) ... nous chargeons des tables à partir d'un serveur en tant que fichiers txt et reconvertir ces txt_files pour exceler les données avec la procédure standard. Par macro, nous supprimons toutes les requêtes et connexions après les téléchargements.vba excel connexions tables de requête supprimer
Tout a fonctionné parfaitement et rapidement, mais la feuille principale devient plus lente et plus lente maintenant. Même l'ouverture du classeur prend de plus en plus de temps, tandis que la taille reste constante.
D'une certaine façon j'ai le sentiment, il y a des restes de transfert de données à partir des txt_files qui ne sont pas supprimés avec:
#Dim ws As Worksheet
Dim qt As QueryTable
For Each ws In ThisWorkbook.Worksheets
For Each qt In ws.QueryTables
qt.Delete
Next qt
Next ws
If ActiveWorkbook.Connections.Count > 0 Then
For i = 1 To ActiveWorkbook.Connections.Count
ActiveWorkbook.Connections.Item(1).Delete
Next i
EndIf
#
Il n'y a pas de formules dans le classeur. Le ralentissement persiste, même en sélectionnant toutes les cellules de la main_sheet + effacer ... Je suppose que toutes les cellules sont vides après cette commande ...
Dans les 24 autres feuilles il n'y a pas speed_problems (même filtrer une liste 850.000 x 33)
Une idée de comment vérifier ce qui ralentit le classeur dans la feuille principale? Existe-t-il des commandes de nettoyage plus puissantes, supprimant les requêtes et les connexions? Existe-t-il des méthodes pour consigner ce que fait exceller, alors qu'il ne retourne pas la commande?
je lu quelque part que commençant par Excel 2007, vous devez traiter QueryTable au sein de chaque ActiveSheet.ListObjects – Antony
Si vous essayez d'effacer le main_sheet, vous devez sélectionner tous et sur votre clavier et appuyez sur (Control & -) c'est la touche Ctrl et tout en la maintenant enfoncée, appuyez sur la touche moins sur votre pavé numérique, cela devrait supprimer toutes les cellules, et pas seulement effacer le contenu, libérant ainsi de la mémoire ... – Xabier