Importer fichiers multiples excel => access - VB/VBA/VBS - Programmation
Marsh Posté le 09-05-2007 à 20:27:38
Merci pour le lien mais je t'avoue que je n'y ai rien trouve de tres specifique.
Une idee ?
E
Marsh Posté le 10-05-2007 à 09:03:00
Bonjour,
Aménages un peu ceci (à placer dans un formulaire Access)
Private Sub Commande0_Click()
Dim i, chemin
chemin = "c:\mesXLS"
With Application.FileSearch
.NewSearch
.FileType = msoFileTypeExcelWorkbooks
.SearchSubFolders = False
.LookIn = chemin
If .Execute() <> 0 Then
For i = 1 To .FoundFiles.Count
Workbooks.Open Filename:=.FoundFiles(i)
nomfi = .FoundFiles(i)
sonnom = ActiveWorkbook.Name
derligne = ActiveSheet.Range("A65534" ).End(xlUp)
Workbooks(sonnom).Close savechanges:=False
mazone = "a1:g" & derligne
DoCmd.TransferSpreadsheet acImport, , "matableaccess", .FoundFiles(i), False, mazone
Next i
Else
MsgBox ("Aucun fichier " )
End If
End With
End Sub
A modifier: le répertoire, et la zone des cellules
Cordialement
Marsh Posté le 10-05-2007 à 17:44:49
Wow merci beaucoup.
J'ai copie ca dans une macro sur Access (je sais pas comment editer directement le code sur un formulaire) (PS: je suis nul desole), et il me renvoie un message d'erreur: Invalid call or argument sur la ligne .FileType = msoFileTypeExcelWorkbooks
Help ?
Merci beaucoup
Marsh Posté le 10-05-2007 à 17:51:13
vérifier que la référence MS Script Runtime et MS Scripting est bien cochée ?
Marsh Posté le 10-05-2007 à 18:26:20
Je les ai coches now c'est bon.
Je lutte encore pour savoir comment integrer le code dans un formulaire. Je cree le formulaire, je cree un bouton. Je fais Code Builder, il ouvre VB editor, je rentre le code. Je ferme le tout, je clique sur le bouton et la ... nada
Une idee ? Faut que je cree la base qui va recevoir les donnees a un moment ?
(suis une bille)
Eric
Marsh Posté le 10-05-2007 à 18:43:48
Bonsoir,
Assures-toi que le bouton s'appelle bien Commande0
Tu es dans quelle base?
tu dis nada? cela plante?, il y a une erreur?,
es-tu allé voir dans les tables si elle n'a pas été créée?
Le chemin que tu as mis est-il correct?
Cordialement
Marsh Posté le 10-05-2007 à 23:21:12
Dans quelle base ???
Au fait j'ai une version anglaise de access.
OK voila dans l'ordre ce que je fais.
Je cree un nouveau fichier access. (je cree pas de table. je devrais ?).
Je creee un form, en mode design, je click droit dessus, je choisi Build Event, dans le menu qui apparait il y a Expression Builder, Macro Builder, Code Builder. Je choisis code builder. Ca ouvre VB editor.
Je copie le code que tu m'as donne (en remplacant commande par command - puisque c'est en anglais) et en mettant le chemin et la selection excel qui vont bien.
Je vais aussi dans Tools / References, je coche Microsoft Script COntrol 1.0, Microsoft SCripting Runtime, et Microsoft Scriptlet Library.
Finalement je sors de vb editor, je sauve le formulaire, je reouvre le formulaire en mode normal (pas design). Je click sur le bouton et la: il me renvoie un message de debogage. (celui que j'ai decrit plus haut). En gros il aime pas la ligne .FileType = msoFileTypeExcelWorkbooks.
Aucune table n'est creee. Il faut que je le fasse separement ?
Merci beaucoup pour l'aide.
Eric
Marsh Posté le 11-05-2007 à 07:05:48
Bonjour,
Dans les références coches microsoft excel ... et microsoft office...
Cordialement
Marsh Posté le 11-05-2007 à 09:31:09
enormissime, ca marche
T'es trop fort.
Merci infiniment.
Eric
Marsh Posté le 09-05-2007 à 18:34:18
Bonjour,
J'ai environ 500 fichiers Excel (avec les memes colonnes), qu'il faudrait que je mette sous un unique fichier (idealement access car je pense pas qu'une spreadsheet excel soit assez grande - les fichiers sont assez gros).
Quelqu'un a une idee ? En gros ca reviendrait a automatiser l'import de fichier sous access a tous les fichiers d'un folder.
MErci d'avance
Eric