Microsoft 365 Ouvrir un fichier Excel rapidement en VBA

iliess

XLDnaute Occasionnel
Je suis actuellement chargé de la gestion comptable sur un logiciel de comptabilité qui me donne la capacité de générer des états financiers sous forme de fichiers Excel. Cependant, un inconvénient notable est la lenteur d'ouverture de ces rapports.
Est-il possible de réduire le temps d’ouverture du classeur en VBA en important, par exemple, l’intégralité de la feuille 1 sans ouvrir le fichier source pour un traitement personnalisé ?
Cordialement.

1712352797545.png


Est-il possible de joindre mon fichier de démonstration qui fait 12 Mo en taille ?
 
Dernière édition:
Solution
Voici un code ("Power Query") avec un temps de 6,48 secondes.
VB:
sub Macro1()
Dim t
t = Timer
    ActiveWorkbook.Queries.Add Name:="JournalAuxExcel", Formula:= _
        "let" & Chr(13) & "" & Chr(10) & "    Source = Excel.Workbook(File.Contents(""C:\Users\ilies\Desktop\JournalAux.xlsx""), null, true)," & Chr(13) & "" & Chr(10) & "    JournalAuxExcel_Sheet = Source{[Item=""JournalAuxExcel"",Kind=""Sheet""]}[Data]," & Chr(13) & "" & Chr(10) & "    #""Type modifié"" = Table.TransformColumnTypes(JournalAuxExcel_Sheet,{{""Column1"", type any}, {""Column2"", type any}, {""Column3"", type text}, {""Column4"", type" & _
        " text}, {""Column5"", type text}, {""Column6"", type text}, {""Column7"", type text}, {""Column8"", type text}, {""Column9"", type any}, {""Column10""...

Cousinhub

XLDnaute Barbatruc
Svp monsieur @Cousinhub une dernière question
le nom de l'onglet est différent, et qu'il n'y a qu'un seul onglet. Comment dans cette ligne
VB:
.CommandText = Array("SELECT * FROM [JournalAuxExcel]")
Je change le nom de la feuille. Sachant que c'est toujours la première feuille.
Bonjour,
Dans le dernier code du post #44, il n'y avait plus de référence au nom de l'onglet.
[JournalAuxExcel] indiqué ici fait référence au nom de la requête.
Si tu comptes importer plusieurs requêtes dans le même classeur, il faut juste apporter une précision supplémentaire dans le nom de la requête et dans le nom de la table dernièrement importée.
Précise un peu plus ton besoin, stp
Bonne fin d'apm
 

iliess

XLDnaute Occasionnel
Bonsoir M. @Cousinhub
Il s'agit d'un autre fichier.
J'ai appliqué la technique Power Query en VBA et je trouve qu'elle est très efficace pour moi, car je peux ajouter plusieurs fonctions. Mais mon nouveau fichier contient une seule feuille et le nom de la feuille change, mais toujours commence par grand........................
Alors ici, j'ai pas trouvé le bon code.
.CommandText = Array("SELECT * FROM [grand.....*]")
Si vous pouvez m'aider, merci d'avance. Si non, est-ce que je dois créer une nouvelle discussion.
cordialement.
 

Discussions similaires

Réponses
3
Affichages
251

Statistiques des forums

Discussions
312 241
Messages
2 086 523
Membres
103 242
dernier inscrit
Patoshick