Bonjour,
j'aborde un sujet déjà abordé dans beaucoup de post et dans la FAQ, mais je n'ai pas trouvé encore comment faire.
Je suis sous Win2000 et Office2000.
Je souhaite importer dans une table existante, un certain contenu d'un fichier excel. Dans ce fichier excel, je veux prendre une partie seulement (le contenu d'un tableau précis, pour cela, je voudrais sélectionner la plage "B13:U23" et toutes les lignes avec une valeur en dessous). Le tableau excel ne contient pas le nom de mes champs.
J'ai 2 problèmes :
1- comment récupérer la valeur de la plage (sous forme de string pour m'en servir dans TransferSpreadsheet )
2- comment utiliser TransferSpreadsheet pour une plage donnée quand le nom des champs n'est pas dans le fichier excel (j'obtiens toujous une erreur :
ERROR 2391: le champs 'F1' n'existe pas dans la table destination)
Voici un bout de code complètement faux pour représenter l'esprit de ce que je veux faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 Dim xlApp As Excel.Application Dim xlSheet As Excel.Worksheet Dim xlBook As Excel.Workbook Dim xlRange As Excel.Range ' Récupération du chemin du fichier à importer fichier = Me.txtFichierAImporter.Value ' Initialisation des variables Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open(fichier) Set xlSheet = xlBook.Worksheets("Tableau") ' Sélection de la plage correspondant aux données à importer Set xlRange = xlSheet.Range("B13:U23") Set xlRange = xlSheet.Range(Selection, Selection.End(xlDown)) ' Importation DoCmd.TransferSpreadsheet transfertype:=acImport, SpreadsheetType:=8, _ tablename:="source", Filename:=fichier, _ Hasfieldnames:=False, Range:=xlRange
Partager