[VBA] Accélerer procédure d'ouverture de documents
Bonsoir,
En optimisant au mieux mon outil, Excel est en mesure d'ouvrir des base de données de quelques dizaines de milliers de lignes en assez peu de temps (jusqu'à 1 ou 2 minutes si on veut tout charger en même temps, ce qui n'est normalement pas utile).
Alors, surtout par curiosité, je me demandais si vous auriez une solution pour rendre l'ouverture de ces documents plus rapide (en ouvrant pas le document par exemple).
J'ai fait un petit document Excel qui reprend en partie le fonctionnement de mon outil et qui charge 3 bases de données. Alors, bizarement, en ayant écrit la même chose, je constate une erreur sur mon code utilisé en exemple...
Je vais donc essayer de voir ce qui cloche (on dirait que l'ouverture d'un format .xlsx fonctionne lorsque le xlsx vient d'être ouvert, mais ne fonctionne pas une fois que celui-ci à déjà été ouvert par Excel
Si ça pose toujours problème, je changerai le code (du fichier en exemple) par quelque chose d'autre.
Je vous remercie de votre attention !
Bonne soirée
Bonjour,
Il manque le chemin d'accès au fichier
Il faut ajouter la variable "Source" il aurait été mieux d'utiliser un nom de variable explicite "sPath" par exemple
With oSource
.Provider = "Microsoft.Jet.OLEDB.12.0"
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & source & fich & ";Extended Properties=""Excel 12.0;HDR=no;IMEX=1"";"
.Open
End With
@+
Bonsoir,
En effet, l'erreur venait du fait que j'ai désactivé cette partie du code dans le cadre de mon exemple :
' Do While fich <> ""
' If FileDateTime(source& fich) > ddt Then
' lastfich = source& fich: ddt = FileDateTime(source& fich)
' End If
' fich = Dir
' Loop
' fich = lastfich
Et donc, la source n'était pas complète.
Cela résout le problème de mon exemple, que je n'ai pas dans mon outil et pour lequel j'aimerais bien savoir s'il y a moyen d'avoir quelque chose de plus rapide, en évitant d'ouvrir chaque fichier avant de les charger dans le fichier principal par exemple.
En tout cas merci de la réponse, vue que je ne trouvais pas j'envisageai de refaire un exemple, pas à pas, mais maintenant c'est bon
Je réupload le dossier compressé, fonctionnel maintenant.
A plus tard :)
Salut
Tu peux utiliser Power Query pour charger les fichiers directement, mais ont-ils toujours le même nom
@+
Bonsoir,
PowerQuery je m'en sert pour la construction et la mise à jour des bases de données initiales (des centaines de milliers de lignes) pour extraire les BDD plus petites que je vais utiliser dans mon outil. Dans cette situation, tout fonctionne.
Les extraits de bases de données sont renommés à chaque nouvel enregistrement, lorsqu'ils sont mis à jour. Certains sont également alimentés par mon mon outil et changent de nom.
Le changement de nom consiste à conserver le nom (exemple BDD1) en modifiant la partie du nom qui contient la date d'enregistrement (ex : BDD1_2021_8_11_23_11).
En outre, les feuilles sont supprimées à la fermeture de l'outil. J'ai besoin qu'il soit nettoyé à la fermeture (selon les options choisies), et cette opération a pour conséquence de ne plus faire fonctionner PowerQuery.
Bonne fin de journée !