Export d'une table access en Excel et création d'un TCD

debutantEY - 18 avril 2013 à 15:29
 debutantEY - 19 avril 2013 à 10:40
Bonjour à tous,

Je suis nouveau sur ce forum et un grand débutant en VBA.

Je fais donc appel à des âmes chariables (et à celles les plus aguéries ) pour m'aider à résoudre mon problème.

Mon objectif est d'automatiser une tâche qui s'avére répétitive à partir du visual basic d'Access.

Le processus est le suivant :

1- Extraire une table access en excel
2- Création d'un TCD

Jusque là j'ai reussi à exporter ma table access en excel et à l'ouvrir automatiquement (je pense que pour les connaisseurs, c'est un jeu d'enfant mais pas pour moi ).

Public Sub Export()
DoCmd.TransferSpreadsheet acExport, , "chemin d'accés", False, ""

Dim xlApp As Object

Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
xlApp.workbooks.Open ("chemin d'accés")
xlApp.Sheets("Nom de la feuille excel à ouvrir").Activate

End Sub


Je vous avouerez qu'ensuite, je ne sais pas du tout comment m'y prendre pour créer un TCD.
Si quelqu'un aurait une idée, elle serait la bienvenue.

Merci à tous

2 réponses

Utilisateur anonyme
18 avril 2013 à 23:21
Bonjour,

Je vous avouerez qu'ensuite, je ne sais pas du tout comment m'y prendre pour créer un TCD.
Si quelqu'un aurait une idée, elle serait la bienvenue.


Il y a une baguette magique dans Excel, Word et les anciennes versions de PowerPoint: L'enregistreur de macros. Tu ouvres l'enregistreur, tu cliques "Débuter l'enregistrement", tu fais ton TCD avec les menus et la souris. Quand ton TCD est terminé, tu cliques sur Terminer l'enregistrement et tu as une macro toute faite dans l'éditeur. Ensuite, tu peux rabouter ta macro à une autre, l'élaguer et la modifier, comme toute autre macro partie de rien.
0
Merci pour ta réponse.

Oui, c'est ce que j'ai tenté de faire mais j'ai eu un problème de liaison lorsque j'ai copié collé la macro d'excel à access.

Je te montre mon code avec erreur "Sub or function not defined"


Public Sub Export()
DoCmd.TransferSpreadsheet acExport, , "flux net positifs 012006", "C:\Documents and Settings\mallaoui\My Documents\TEST MACRO\FLUX NET POSITIFS\flux net positifs 012006.xlsx", False, ""


Dim xlApp As Object

Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
xlApp.workbooks.Open ("Chemin d'acces.xlsx")
xlApp.Sheets("nom de la feuille").Activate

Range("A1:P304").Select
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"flux_net_positifs_012006!R1C1:R304C16", Version:=xlPivotTableVersion12). _
CreatePivotTable TableDestination:="Sheet1!R3C1", TableName:="PivotTable1" _
, DefaultVersion:=xlPivotTableVersion12
Sheets("Sheet1").Select
Cells(3, 1).Select
With ActiveSheet.PivotTables("PivotTable1").PivotFields("FINAL STATUS")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("ScopeTrade")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Courbe")
.Orientation = xlRowField
.Position = 3
End With
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
"PivotTable1").PivotFields("SommeDeCVEURO"), "Sum of SommeDeCVEURO", xlSum
Columns("B:B").Select
Selection.Style = "Comma"
Selection.NumberFormat = _
"_-* #,##0.0 _€_-;-* #,##0.0 _€_-;_-* ""-""?? _€_-;_-@_-"
Selection.NumberFormat = "_-* #,##0 _€_-;-* #,##0 _€_-;_-* ""-""?? _€_-;_-@_-"
ActiveSheet.PivotTables("PivotTable1").PivotSelect "Courbe[All]", xlLabelOnly _
+ xlFirstRow, True
Range("B7").Select
With ActiveSheet.PivotTables("PivotTable1")
.InGridDropZones = True
.RowAxisLayout xlTabularRow
End With
Range("A7").Select
ActiveSheet.PivotTables("PivotTable1").PivotFields("FINAL STATUS").Subtotals = _
Array(False, False, False, False, False, False, False, False, False, False, False, False)
Range("B8").Select
ActiveSheet.PivotTables("PivotTable1").PivotFields("ScopeTrade").Subtotals = _
Array(False, False, False, False, False, False, False, False, False, False, False, False)
End Sub


Merci beaucoup
0
Rejoignez-nous