Bonjour a tous,
J'utilise des fonctions entre access et Excel pour récuperer des données de tableaux Excel et les entrer dans access automatiquement. Certain de ces Excel sont des points XLS d'autres sont des fichiers texte .CSV.
Pour ouvrir les point XLS j'utilise les fonction suivante:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| 'This Part Open the Excel File
'Create and Open an Excel application
Set MyExcel = CreateObject("excel.application")
'Make the excel application visible
MyExcel.Visible = True
'Create a workbook in the Excel application
Set MyWorkBook = MyExcel.Workbooks.Open(adress)
'MyWorkBook.Application.DisplayAlerts = False
'Make the workbook visible
'windows(1) is the VPM's file if it is not already open. If not an Error occurs
MyWorkBook.windows(1).Visible = True
'Assign to MySheet the first worksheet of the workbook (the Elise's Excel File)
Set MySheet = MyWorkBook.Worksheets(1)
'Make MySheet visible
MySheet.Visible = True |
Ce code marche parfaitement bien.
En revanche il marche pas pour les .CSV. En fait Excel fait la séparation des colonnes à chaque virgule alors qu'il devrait la faire à chaque point virgule.
J'ai essayer la chose suivante:
Set MyWorkBook = MyExcel.Workbooks.Open(adress) ', ReadOnly:=True, Format:=4)
ou encore cela:
Set MyWorkBook = MyExcel.Workbooks.Open(adress) ', ReadOnly:=True, DataType:=xlDelimited, comma:=False, Other:=True, OtherChar:=";")
Cela ne change rien, le CSV s'ouvre toujours mal. En revanche ca fonctionne très bien si j'enregistre le .CSV en .TXT et que je fais fonctioner ma macro après.
Le but serait de m'eviter de faire une recopier de mon .CSV en .TXT et donc d'ouvrir directement le .CSV à la bonne forme.
J'ai essayé également les remises en forme automatique (séparation a chaque mais cela ne peut fonctioner que sur une colone. Hors le fichier est séparé à chaque virgule dans differentes colonnes.
Je suis pas sur de m'etre exprimé suffisament clairement mais si vous pouviez m'aider j'en serais ravi.
Partager