Bonjour à tous,
Je souhaite importer un fichier excel dans access, or mon fichier source est en format OUT. Comment pourrais je le convertir dans le bon format? ou alors faire qu'access puisse ouvrir un fichier .out?
Merci pour votre aide.
Bonjour à tous,
Je souhaite importer un fichier excel dans access, or mon fichier source est en format OUT. Comment pourrais je le convertir dans le bon format? ou alors faire qu'access puisse ouvrir un fichier .out?
Merci pour votre aide.
Bonjour
Je ne pense pas que c'est un fichier Excel avec l'extension .out
Je penche plus pour un fichier texte, il faudrait que tu nous en dises plus sur ce fichier, car à mon avis cela n'a rien à voir avec Excel.
Philippe
Il s'agit d'un fichier ouvrable dans excel mais dont je ne peux donner l'extension .xls/.xlsx même en sauvegardant le fichier. Peut-être faudrait-il copier le tableau et le copier dans un nouveau fichier excel. Qu'en penses-tu?
L'extension .OUT ne fait pas partie des extensions courantes.
https://fr.wikipedia.org/wiki/Liste_..._de_fichiers#O
En tout cas, ce n'est pas une extension d'un format d'Excel, à moins que ce soit une extension forcée d'un enregistrement par macro VBA (dans ce cas, montre la ligne de code).
Donc, si tu ne nous en dis pas plus sur l'origine de ce fichier et la structure de ce format, il ne sera pas possible de t'aider.
Qu'est-ce que c'est, pour toi, "le bon format" ?Comment pourrais je le convertir dans le bon format?
Si le fichier peut être ouvert correctement dans Excel, il est peu probable qu'il ne puisse pas être sauvegardé à un format xls/xlsx.
Si effectivement c'est le cas, il va falloir en dire plus, expliquer pourquoi tu ne peux pas le sauvegarder.
Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.
Le format OUT est le format de sorti d'une extraction, adaptable excel, d'un logiciel. Il me suffit de glisser le fichier dans un nouveau classeur pour le visualiser. Cependant, lorsque j'enregistre mon fichier, le format reste .out, d'ou le fait que je doive peut etre le copier coller le tableau dans un fichier excell.
Puisque j'importe un fichier excel dans acces, le bon format de mon fichier d'importation doit être excel
Voici mon code tapé dans access et le troisième code ne fonctionne pas car le format du fichier appelé dans le DoCmd.TransferSpreadsheet demande le .xls/.xlsx
Je joins également la photo de mon formulaire avec les codes renseignant les commandes
code de la première commande:
code de la deuxième commande, avec la partie (qui ne fonctionne pas d'ailleurs) où j'essaie de copier le tableau .out dans un tabelau .xls
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 Private Sub CommandeParcourir_Click() Dim fd As Office.FileDialog Set fd = Application.FileDialog(msoFileDialogOpen) fd.Title = "Sélectionnez un fichier Excel..." fd.AllowMultiSelect = False fd.Filters.Clear fd.Filters.Add "Fichiers Excel", "*.xls; *.xlsx" fd.Filters.Add "Fichier OUT", "*.out" fd.FilterIndex = 2 If fd.Show() Then Me.Texte29 = fd.SelectedItems(1) End If Set fd = Nothing End Sub
Le troisième bouton qui ne fonctionne pas:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 Private Sub CommandeFormater_Click() excel.Application.Workbooks.Open(Me.Texte29) Columns("A:A").Select Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ Semicolon:=True, Comma:=False, Space:=False, Other:=False, OtherChar _ :="|", FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True Rows("1:57").Select Selection.Delete Rows("1:1").Select Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Columns("I:I").Select Selection.NumberFormat = "@" Set NewBook = excel.Application.Workbooks.Add NewBook.SaveAs "new1" Dim b, i, Ligne, Colonne As Integer Ligne = 0 Colonne = 0 ' calcul du nombre de lignes du 1er tableau While Me.texte29.Worksheets(1).Range("A1").Offset(Ligne, 0) <> "" Ligne = Ligne + 1 Wend ' calcul du nombre de colonnes du 1er tableau While Me.texte29.Worksheets(1).Range("A1").Offset(0, Colonne) <> "" Colonne = Colonne + 1 Wend ' Copie du tableau Me.texte29.Range(Cells(1, 1), Cells(Ligne, Colonne)).Copy NewBook.Worksheets(1).Cells(1, 1).PasteSpecial NewBook.Save End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Private Sub CommandeImporter_Click() Dim SQL As String Dim db As DAO.Database: Set db = CurrentDb SQL = "delete * from BG" Call db.Execute(SQL, dbFailOnError) DoCmd.TransferSpreadsheet acImport, 8, "BG", Me.Texte29, 1
Certes, mais je cherche à automatiser l’importation pour que l’utilisateur n’est qu’a sélectionner (dans le parcourir) l’extraction .out voulue, puis de l’importer dans access.
Tu dis que tu veux garder l'extension OUT mais que ton application veut obligatoirement une extension XLS ou XLSX.
Ces deux souhaits sont incompatibles.
Ou alors tu modifies ta macro pour qu'elle ouvre avec Excel ton fichier OUT et qu'elle l'enregistre en XLSX avant de traiter le XLSX avec Access.
Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.
L’extraction se fait en amont et ton deuxième paragraphe décrit exactement ce que j’essaie de faire depuis le début. Plus tu m’aider?
Bonjour
A la vue de ce qui précède, ton fichier est tout simplement un fichier texte type CSV.
Pourquoi ne pas shunter la partie Excel et importer directement ce fichier à partir d'Access ?
Philippe
oui c'est un fichier dont les termes sont séparés par des points virgules. Je souhaite le passer par excel avant de le passer dans access car je dois le retraiter pour que sa forme corresponde au tableau destination d'access.
Ce sont les opérations que j'effectue dans la partie formater de mon code.
Re
Et alors, tu peux faire tout cela sous Access en ouvrant le fichier car en fait un fichier texte et en reformatant les données pour les inclurent dans une table.
Ou importer le tout dans une table temporaire, et en remettant tes données dans la table finale à l'aide d'une requête.
Philippe
oui c'est vrai merci du conseil. Connais tu le code vba docmd.transferspreadsheet pour importer un fichier txt?
Re
Si tu t'orientes vers une solution Access il faut clotûrer cette discussion et en ouvrir une sur Access VBA pour voir le code.
Pour information c'est un docmd.TransferText
Mais avec ce genre d'instructions tu rentres directement dans la table sans formatage particulier.
Philippe
Je te conseille VIVEMENT de bien comprendre le contenu de cette ligne de code avant d'essayer de l'appliquer à ton code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ActiveWorkbook.SaveAs FileName:=ActiveWorkbook.Name & ".xlsx" FileFormat:=xlOpenXMLWorkbook
Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager