remus83
Messages postés1Date d'inscriptionmardi 30 septembre 2008StatutMembreDernière intervention 1 octobre 2008
-
1 oct. 2008 à 00:06
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 2013
-
1 oct. 2008 à 20:36
Bonjour à tous,
J'utilise un code VBA dans Access qui me permet de filtrer les données que je recherche dans une grande table (plus de 40000 lignes) et d'exporter automatiquement les données dans Excel. Ayant plus de 100 filtres, ce code me fait gagner énormément de temps.
L'exportation se fait de la façon la plus simple dans Excel (copier/coller pour résumer) et j'aimerai pouvoir gagner encore plus de temps en automatisant la mise en forme des fichiers Excel. Pour faire simple, je voudrais éviter de devoir ouvrir chaque fichier Excel venant de l'exportation de Access et de faire la mise en forme à chaque fois.
J'ai tout d'abord essayer de copier coller le code VBA que j'ai pu récupérer en enregistrant une mise en forme grâce à l'assistant Visual Basic Editor dans Excel. Malheureusement cela ne fonctionne pas.
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 1 oct. 2008 à 02:41
Bonsoir,
Si ta page Excel est toujours la même au niveau des colones exportées:
1-Faire un fichir modèle avec une mise en page personnalisée.
2-Automatiser la procédure exportation.
Pour ceci, perso j' utilise la méthode suivante:
Sub EXPORTER()
Dim sQuery As String
Dim rs As Recordset
'Construire l' expression de la requete selon les critères filtres.
sQuery="SELECT ..."
'instancier le recordset
Set rs = CirrentDB.OpenRecordset(sQuery, dbOpenSnapshot)
Dim sDestination As String
sDestination=<chemin et nom du classeur Excel>
'variable classeur Excel
Dim appExcel As Excel.Application 'Application Excel
Dim wbExcel As Excel.Workbook 'Classeur Excel
Dim wsExcel As Excel.Worksheet 'Feuille Excel
'Ouverture de l'application
Set appExcel = CreateObject("Excel.Application")
'Ouverture d'un fichier Excel
Set wbExcel = appExcel.Workbooks.Open(sDestination)
'wsExcel correspond à la première feuille du fichier
Set wsExcel = wbExcel.Worksheets(1)
With wsExcel
'Réinitialiser la page en supprimant le contenu des 'cellules à partir de la ligne des données (A8 par exemple)