Exportation d'une table Access sous Excel!!!!
calimero76
Messages postés
5
Statut
Membre
-
DaNot Messages postés 221 Statut Membre -
DaNot Messages postés 221 Statut Membre -
Bonjour,
J'aurai aimé savoir comment faire pour copier une table access dans une feuille Excel, le tout sous access(vba).
Merci d'avance,
@+
calimero
J'aurai aimé savoir comment faire pour copier une table access dans une feuille Excel, le tout sous access(vba).
Merci d'avance,
@+
calimero
3 réponses
-
pourquoi tu n'utilises pas les macros...
en vba access je ne peux pas t'aider -
Je n'avais pas pensé o macro! Je ne les utilise jamais!Merci!!!Il me reste tout de même un petit problème : je dois (toujours à partir d'access) insérer une formule de calcul dans excel!!!
Si tu sais comment faire ça m'aiderai beaucoup!!!
Merci encore
calimero -
Salut,
J'utilise un module de class pour les acces a Excel :Option Compare Database Option Explicit Public gExcelApp As Excel.Application Public gCurrentWorkbook As Excel.Workbook Public gCurrentSheet As Excel.Worksheet Public gCurrentSheetNumber As Integer Private gExcelAppLaunched As Boolean Private Sub Class_Initialize() On Error GoTo NoExcelLaunched gExcelAppLaunched = False 'Try to get Excel application (if running) Set gExcelApp = GetObject(, "Excel.Application") gExcelAppLaunched = True GoTo CommonEnd NoExcelLaunched: On Error GoTo EndOfSub 'No Excel running => Creation Set gExcelApp = CreateObject("Excel.Application") CommonEnd: Exit Sub EndOfSub: Err.Description = "Error occured during launch Excel application (class ExcelClass)" ShowErrorMessage End Sub Private Sub Class_Terminate() If Not gExcelAppLaunched Then Set gCurrentSheet = Nothing Set gCurrentWorkbook = Nothing gExcelApp.Application.Quit Set gExcelApp = Nothing End If End Sub Public Sub ShowErrorMessage() If Err.Number <> 0 Then MsgBox Err.Description Err.Clear End Sub Public Sub Visible() If Not gExcelApp.Visible Then gExcelApp.Visible = True End Sub
Ensuite tu utilises dans un module classique :Sub FormatResultsFile(aFileName As String) Dim lExcel As MSExcel_Class Dim lWorkbook As Workbook Dim lTabCount As Long Set lExcel = New MSExcel_Class 'lExcel.Visible Set lWorkbook = lExcel.gExcelApp.Workbooks.Open(aFileName) For lTabCount = 1 To 7 lWorkbook.Sheets(lTabCount).Activate lWorkbook.Sheets(lTabCount).Range(lWorkbook.Sheets(lTabCount).Cells(1, 1), lWorkbook.Sheets(lTabCount).Cells(1, lWorkbook.Sheets(lTabCount).UsedRange.Columns.Count)).Select DrawGridBorder lExcel DrawFrameBorder lExcel lExcel.gExcelApp.Selection.Interior.ColorIndex = 15 lExcel.gExcelApp.Selection.Interior.Pattern = xlSolid lExcel.gExcelApp.Selection.Font.Bold = True lExcel.gExcelApp.Selection.HorizontalAlignment = xlCenter lExcel.gExcelApp.Selection.VerticalAlignment = xlBottom lExcel.gExcelApp.Selection.WrapText = False lExcel.gExcelApp.Selection.Orientation = 0 lExcel.gExcelApp.Selection.ShrinkToFit = False lExcel.gExcelApp.Selection.MergeCells = False lWorkbook.Sheets(lTabCount).Range("A1").Select lWorkbook.Sheets(lTabCount).Range(lWorkbook.Sheets(lTabCount).Cells(2, 1), lWorkbook.Sheets(lTabCount).Cells(lWorkbook.Sheets(lTabCount).UsedRange.Rows.Count, lWorkbook.Sheets(lTabCount).UsedRange.Columns.Count)).Select DrawGridBorder lExcel DrawFrameBorder lExcel lWorkbook.Sheets(lTabCount).Range("A1").Select lWorkbook.Sheets(lTabCount).Cells.EntireColumn.AutoFit Next lWorkbook.Sheets(1).Activate lWorkbook.Sheets(1).Range("A1").Select lWorkbook.Close True Set lExcel = Nothing End Sub
Voila si ca peux t'aider...
DaNot
un Libre ouvert à la source...