XL 2013 Ajouter plusieurs tables Access dans Excel

zoidberg

XLDnaute Nouveau
Salut à tous, je viens à vous car on m'a pose une colle au bureau...

J'ai une base de donnes Access avec plusieurs tables dedans, j'aimerais, pour compiler ces données, les importer dans excel. Mais pour simplifier la procedure chaque jour j'aimerais le faire dans une macro ( un gros bouton importer et voila).

J'ai donc fait un enregistrement de macro et fait mon import dans Excel, tout ce passe bien, le problème est que quand je ferme mon fichier et le rouvre et relance la macro, la j'ai un bug...

Si vous avez des idées pour faire cette tache de manière rapide et propre je suis preneur

(mes connaissances Excel sont très limitées)

Merci d'avance ! :)
 

zoidberg

XLDnaute Nouveau
Salut Bougla,

Les onglets correspondent bien, j'ai toujours le meme soucis, je remet mon code au cas ou...

VB:
Private Sub Command0_Click()
    Dim xlApp As Excel.Application
    Dim xlSheet As Excel.Worksheet
    Dim xlBook As Excel.Workbook
    Dim i As Long
    Dim vtemp As Variant
   
Set xlApp = CreateObject("Excel.Application")
Set xlWb = xlApp.Workbooks.Open("C:\Users\thibaud.nicolazi\Desktop\Performance_Reports\Arbi_Performance.xlsm")
Set xlSheet = xlBook.Sheets("Data_Arbitrage")
xlWs.Range("A:AA").ClearContent


PS : Code erreur 91 : Object variable or with block variable not set
Merci d'avance
 

zoidberg

XLDnaute Nouveau
Apres avoir farfouille sur des pages net étrangères, j'ai trouve un code qui fait la meme chose, et avec quelques modifs, ca marche !!!

Mais voila petit soucis, quand j'indique les colones que je souhaite supprimer, j'ai l'erreur 7 : out of memory.

J'ai tenter de réduire la selection a supprimer et ca marche, la question maintenant est : existe-t'il une solution pour libérer de la mémoire avant de réaliser la suppression ?

Voila mon code maintenant :
VB:
Private Sub Command0_Click()

Dim xlBook As Excel.Workbook
Dim xlApp As Excel.Application
Dim xlSheet As Excel.Worksheet
Dim vtemp As Variant
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("C:\Users\thibaud.nicolazi\Desktop\Performance_Reports\Arbi_Performance.xlsm")
Set xlSheet = xlBook.Worksheets(1)
vtemp = xlSheet.Columns("A:W")
xlSheet.Columns("A:W").ClearContents

l'erreur se pose sur Vtemp = XlSheet.Columns("A:W")
 

zoidberg

XLDnaute Nouveau
Bien vu, elle me sert a rien, je l'ai enlever et j'ai reduit la taille de ma selection.
Le code pour la suppression des lignes fonctionne et le code pour l'import fonctionne mais voila quand je met les deux ensemble, le fichier freeze tout simplement et je dois faire appel au gestionnaire de taches pour le fermer.
Qu'en pensez vous ?

VB:
Private Sub Command0_Click()

Dim xlBook As Excel.Workbook
Dim xlApp As Excel.Application
Dim xlSheet As Excel.Worksheet

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("C:\Users\thibaud.nicolazi\Desktop\Performance_Reports\Arbi_Performance.xlsm")
Set xlSheet = xlBook.Worksheets(1)
xlSheet.Range("A1:W100000").ClearContents

strPath = "C:\Users\thibaud.nicolazi\Desktop\Performance_Reports\Arbi_Performance.xlsm"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, "Data Arbitrage", strPath


End Sub
 

zoidberg

XLDnaute Nouveau
Merci, effectivement c’était bien le problème,

Le soucis que j'ai maintenant c'est que si je met "True", mon programme veut créer une copie du fichier, je veux qu'il l'enregistre sous le meme nom au meme emplacement, qu'il sois remplacé quoi...
 

zoidberg

XLDnaute Nouveau
Etonnament ca fonctionne maintenant sans que j'ai change auoi aue ce sois...

Enfin c'est super tout marche bien maintenant, je met mon code entier avec des commentaires au ca ou quelq'un serais interesse par cette fonction

VB:
Private Sub Command0_Click()
'------------------------------------------------------------------------------------------------------------------------------

Dim xlBook As Excel.Workbook
Dim xlApp As Excel.Application                                                                          'initialisation des variables
Dim xlSheet As Excel.Worksheet

'-------------------------------------------------------------------------------------------------------------------------------

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("Chemin de votre fichier")
Set xlSheet = xlBook.Worksheets(1)                                                                 'Suppression des donnees existantes
xlSheet.Range("A1:W100000").ClearContents
xlBook.Close (True)

'-------------------------------------------------------------------------------------------------------------------------------

strPath = "Chemin de votre fichier"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, "Nom de la table a exporter", strPath  
 
                           'Import des données de Access

End Sub

Merci beaucoup a toi Bougla qui as eu la patience de traiter avec ma profonde incompetence sur le sujet.

PS : Désole si je ne met pas les accent, je travail avec un clavier anglais QWERTY...
 

Discussions similaires

Réponses
0
Affichages
228

Membres actuellement en ligne

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin