A voir également:
- VBA ACCESS07
- Mkdir vba ✓ - Forum VB / VBA
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Vba dépassement de capacité ✓ - Forum Excel
- Vba range avec variable ✓ - Forum VB / VBA
2 réponses
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
14 sept. 2009 à 10:33
14 sept. 2009 à 10:33
bonjour :)
donc, deja, il faut que tu liste tous les fichiers xls de ton repertoire :
With Application.FileSearch
.NewSearch
.LookIn = Chemin_base & "Import\" ' a remplacer par le chemin ex c:\BASES A PURGER\
.SearchSubFolders = False
.FileName = "*.xls" ' pour ne rechercher que des fichiers xl
.MatchTextExactly = True
'.FileType = 1
If .Execute() > 0 Then ' fichier trouver.. moi je cré une liste dans une variable fichier(), mais a toi de voir ce que tu veux faire
For I = 1 To .FoundFiles.Count
Fichier(I) = .FoundFiles(I)
Next I
Else 'aucun fichier trouvé
MsgBox "Aucun fichier trouvé !!" & Chr(10) & Chr(13) & Chr(10) & Chr(13) & "Veuillez vérifier le répertoire.", vbCritical
End If
Wend
pour l import de chaque fichier xl dans access, il faut deja extraire le nom de chaque feuille de chaque fichier, et de la tu eux importer..:
Dim oAppExcel As Excel.Application
Dim oWbk As Excel.Workbook
Dim oSht As Excel.Worksheet
'Lance Excel
Set oAppExcel = New Excel.Application
'Ouvre le classeur
Set oWbk = oAppExcel.Workbooks.Open(Chemin_base & fichier(i), , True) ' ici le nom de chaque fichier xl
'Accède à la feuille
TmpNomTable = "_Import_MAJ_" ' debut du nom de la table d import
'Temps d attente d ouverture XL
a = Now
Do Until Now > a + TimeValue("0:00:5")
DoEvents
Loop
For Each sht In oWbk.Worksheets
'Importe la feuille excel
'MsgBox Form_Avancement.ImgAvancement.Left
DoCmd.TransferSpreadsheet acImport, 8, "_XL" & TmpNomTable & sht.Name, Chemin_base & fichier(i), True, sht.Name 'donc importe le fichier xl dans _Import_MAJ_ & sht.Name
next
voila, bon, la c'est brut de fonderie.. juste des copiers collé de code que j utilise.. donc faut adapter, mais avec ca, tu devrais avoir quelques pistes pour avancer ;)
@++
donc, deja, il faut que tu liste tous les fichiers xls de ton repertoire :
With Application.FileSearch
.NewSearch
.LookIn = Chemin_base & "Import\" ' a remplacer par le chemin ex c:\BASES A PURGER\
.SearchSubFolders = False
.FileName = "*.xls" ' pour ne rechercher que des fichiers xl
.MatchTextExactly = True
'.FileType = 1
If .Execute() > 0 Then ' fichier trouver.. moi je cré une liste dans une variable fichier(), mais a toi de voir ce que tu veux faire
For I = 1 To .FoundFiles.Count
Fichier(I) = .FoundFiles(I)
Next I
Else 'aucun fichier trouvé
MsgBox "Aucun fichier trouvé !!" & Chr(10) & Chr(13) & Chr(10) & Chr(13) & "Veuillez vérifier le répertoire.", vbCritical
End If
Wend
pour l import de chaque fichier xl dans access, il faut deja extraire le nom de chaque feuille de chaque fichier, et de la tu eux importer..:
Dim oAppExcel As Excel.Application
Dim oWbk As Excel.Workbook
Dim oSht As Excel.Worksheet
'Lance Excel
Set oAppExcel = New Excel.Application
'Ouvre le classeur
Set oWbk = oAppExcel.Workbooks.Open(Chemin_base & fichier(i), , True) ' ici le nom de chaque fichier xl
'Accède à la feuille
TmpNomTable = "_Import_MAJ_" ' debut du nom de la table d import
'Temps d attente d ouverture XL
a = Now
Do Until Now > a + TimeValue("0:00:5")
DoEvents
Loop
For Each sht In oWbk.Worksheets
'Importe la feuille excel
'MsgBox Form_Avancement.ImgAvancement.Left
DoCmd.TransferSpreadsheet acImport, 8, "_XL" & TmpNomTable & sht.Name, Chemin_base & fichier(i), True, sht.Name 'donc importe le fichier xl dans _Import_MAJ_ & sht.Name
next
voila, bon, la c'est brut de fonderie.. juste des copiers collé de code que j utilise.. donc faut adapter, mais avec ca, tu devrais avoir quelques pistes pour avancer ;)
@++