Bonjour à tous !
Je cherche à créer une application userform qui va chercher un fichier mde et qui l'ouvre avec Excel.
Jusque là, ça marche, mais je voudrais automatiser la suite : Créer une page excel par table.
La tête de l'application :
On clique sur le bouton à droite du textbox, qui nous ouvre l'explorateur de fichier, on choisit son .mde/.mdb, et l'appli récupère le lien dans le textbox :
(J'ai cache le lien, je sais pas si j'ai le droit de le montrer. Dans le doute... Bref)
---------- (A partir de là, je ne sais pas comment automatiser le processus) ----------
On clique sur Ouvrir, ça va chercher le fichier via le lien du textbox, et ça l'ouvre dans Excel.
Vu qu'il y a plusieurs tables dans le fichier mde, ça vous ouvre cette popup :
Quand on sélectionne une ou plusieurs tables, ça nous ouvre ça :
Si on a choisi une seule table, on peut choisir "Feuille de calcul existante" Et ça nous met la table Access dans le tableau Excel avec des titres aux colonnes, des filtres etc.
Si on sélectionne plusieurs tables, APPAREMMENT il y a un conflit (je suis pas sur d'avoir réellement compris, mais en gros je pense qu'il essaye d'écrire sur la feuille la table suivante, sauf que la table précedente est déjà écrit sur cette feuille, donc il y a conflit)
Je suppose donc qu'il faut cliquer sur "Nouvelle feuille de calcul" mais je n'ai pas réussi à tester car mon Excel chargeait en boucle et j'ai pas eu la patience pour attendre le résultat final.
Je cherche donc à automatiser ce processus, afin que l'utilisateur ait juste à cliquer sur Ouvrir, et que Excel ne demande rien de plus, le logiciel ouvrirait toutes les tables contenues dans le mdb/mde, et rajoute chaque table dans une nouvelle feuille de calcul.
En gros, quand il clique, il se retrouve avec un nouveau classeur, et X feuilles dedans (X correspond au nombre de table du fichier mdb/mde) avec pour chaque feuille, une table différente de la base de donnée Access. L'utilisateur n'aurait rien d'autre à faire que de choisir le fichier en fait.
J'ai essayé d'enregistrer une macro pour simuler les cliques de souris sur "nouvelle feuille de calcul" et "OK" mais on ne peut pas le faire quand le programme tourne.
Je ne m'y connais pas assez en vba pour écrire dans mon programme une connexion à Access, récupérer le nombre de table, et faire une boucle sur ces tables pour créer une feuille de calcul, puis créer des colonnes en fonction de ce que contient la table Access etc...
C'est pourquoi je solicite votre aide, y a t-il moyen d'automatiser ce processus ?
Voici également le code actuel de l'application :
Merci d'avance pour votre attention,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 Private Sub BoutonEffacer_Click() TextBoxChemin.Text = "" End Sub Private Sub BoutonGo_Click() Workbooks.Open Filename:=TextBoxChemin.Text ' Code 'Windows(ChDir & "\" & NomFichier).Close End Sub Private Sub BoutonOuvrir_Click() Dim CheminEtTypeFichier As String, Fichier As String CheminEtTypeFichier = "C:" Fichier = BrowseFile(CheminEtTypeFichier) TextBoxChemin.Text = Fichier End Sub Function BrowseFile(CheminEtTypeFichier) As String With Application.FileDialog(msoFileDialogFilePicker) .AllowMultiSelect = False .InitialFileName = CheminEtTypeFichier .Filters.Clear .Filters.Add "Access Database", "*.mde" .FilterIndex = 1 .InitialView = msoFileDialogViewProperties .Show If .SelectedItems.Count > 0 Then BrowseFile = .SelectedItems(1) Else BrowseFile = "" End If End With End Function
Cordialement,
Maxime OZENNE.
Partager