A voir également:
- {Access} Importer plusieurs fichiers excel
- Liste déroulante excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Renommer plusieurs fichiers en même temps - Guide
- Word et excel gratuit - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
8 réponses
Bonjour rpouget,
En fait, du point de vue ACCESS, il s'agit d'importer les fichiers EXCEL ...
Procédure à suivre :
Activer la Base ACCESS :
- Menu Fichier
- Données externes
- Importer
- et .... Démarche assistée en pas à pas .... pour désigner le fichier objet de l'import
Malheureusement l'import se fait à l'unité, car les principes qui gèrent les bases de données excluent en principe que plus d'un fichier contienne des informations de même nature ...
Cordialement
En fait, du point de vue ACCESS, il s'agit d'importer les fichiers EXCEL ...
Procédure à suivre :
Activer la Base ACCESS :
- Menu Fichier
- Données externes
- Importer
- et .... Démarche assistée en pas à pas .... pour désigner le fichier objet de l'import
Malheureusement l'import se fait à l'unité, car les principes qui gèrent les bases de données excluent en principe que plus d'un fichier contienne des informations de même nature ...
Cordialement
Si tu touches un peu en VBA, penches-toi sur la méthode docmd.TransferSpreadsheet.
Elle marche très bien pour ce que tu as à faire.
Elle marche très bien pour ce que tu as à faire.
Est-ce que tous tes fichiers excel contiennent le même format de données, et le même nombre de lignes ?
Si c'est le cas, je peux te donner quelques lignes de code qui devraient marcher.
Si c'est le cas, je peux te donner quelques lignes de code qui devraient marcher.
Mes fichiers excel contiennent le même nombre de colonnes avec les mêmes formats de données, mais pas le même nombre de lignes (entre 800 et 1000 lignes).
Merci si tu as une idées !
Merci si tu as une idées !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Si j'ai bien suivi, tu as 200 fichiers Excel contenant chacun entre 800 et 1000 lignes !
Pour le fun, combien de colonnes ?
ta table va être lourde !
Pour le fun, combien de colonnes ?
ta table va être lourde !
Désolé, pas eu le temps de m'en occuper (je suis au boulot, là !)
J'essayerai d'y jeter un oeil ce week-end.
J'essayerai d'y jeter un oeil ce week-end.
Bonjour,
Je viens de trouver 5 minutes pour toi, et voilà le résultat :
Function ImporteExcel()
Dim NomFich As String
NomFich = Dir("D:\TestXl\*.xls")
Do While NomFich <> ""
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "TableTempo", "D:\TestXl\" & NomFich, False, "A1:I300"
NomFich = Dir
Loop
End Function
Alors, ça fonctionne, mais il faut au préalable que ta table devant recevoir les données d'Excel soit créée avec 7 champs dont le type (texte, date...) correspond à tes colonnes Excel, dans le même ordre que tes colonnes Excel,
Tu dois personnaliser le code ci-dessus ainsi :
- A la place de "D:\TestXl\" (dans la première instruction Dir, et dans la ligne DoCmd.Transfer...) , tu mets le répertoire contenant tes fichiers Excel,
- Tu vérifies la version de Excel, pour que la constante acSpreadsheetTypeExcel? corresponde,
- Si tes fichiers Excel contiennent en première ligne les en-têtes de colonne, indique True en avant dernier argument,
- En dernier argument, tu mets la plage de cellules à importer de Excel vers Access. Puisque c'est variable (entre 800 et 1000, m'as-tu dit), tu mets "A1:I1500". Les lignes vides ne seront pas importées.
Voilà, j'ai fait le test sur ma machine, et ça tourne.
Je viens de trouver 5 minutes pour toi, et voilà le résultat :
Function ImporteExcel()
Dim NomFich As String
NomFich = Dir("D:\TestXl\*.xls")
Do While NomFich <> ""
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "TableTempo", "D:\TestXl\" & NomFich, False, "A1:I300"
NomFich = Dir
Loop
End Function
Alors, ça fonctionne, mais il faut au préalable que ta table devant recevoir les données d'Excel soit créée avec 7 champs dont le type (texte, date...) correspond à tes colonnes Excel, dans le même ordre que tes colonnes Excel,
Tu dois personnaliser le code ci-dessus ainsi :
- A la place de "D:\TestXl\" (dans la première instruction Dir, et dans la ligne DoCmd.Transfer...) , tu mets le répertoire contenant tes fichiers Excel,
- Tu vérifies la version de Excel, pour que la constante acSpreadsheetTypeExcel? corresponde,
- Si tes fichiers Excel contiennent en première ligne les en-têtes de colonne, indique True en avant dernier argument,
- En dernier argument, tu mets la plage de cellules à importer de Excel vers Access. Puisque c'est variable (entre 800 et 1000, m'as-tu dit), tu mets "A1:I1500". Les lignes vides ne seront pas importées.
Voilà, j'ai fait le test sur ma machine, et ça tourne.
Cordialement