Import d'un fichier .txt

  • Initiateur de la discussion Laurent
  • Date de début
L

Laurent

Guest
Bonjour à tous

J'importer régulierement des fichiers .txt de façon automatique en utilisant 'Données -> Données externes -> Importer le fichier texte' d'excel puis je choisi les différentes options dans l'assistant d'importation de facon à obtenir l'importation souhaitée. J'ai donc dans VBA le code suivant:

With ActiveSheet.QueryTables.Add(Connection:= _
'TEXT;J:\\donnees\\2006APR07_1834_01.txt', Destination:= _
Range('A1'))
.Name = '2006APR07_1834_6'
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1)
.Refresh BackgroundQuery:=False
End With
End Sub


Le but pour moi est donc de trouver une macro permettant d'éviter de passer systematiquement par ces étapes et qui me permettrait de saisir le nom et l'emplacement du fichier que je veut insérer.

Si quelqu'un pouvait m'aider un petit peu, cela m'aiderai ennormement!

Merci

laurent
 

MichelXld

XLDnaute Barbatruc
bonsoir Laurent

je ne suis pas sur d'avoir bien compris , mais cette adaptation permet de selectionner le fichier texte dans une boite de dialogue

Dim Fichier As Variant
Dim Longueur As Integer, i As Integer

Fichier = Application.GetOpenFilename('Fichiers Texte (*.txt), *.txt')
If Fichier = False Then Exit Sub

Longueur = Len(Fichier)
i = Longueur
While Mid(Fichier, i, 1) ‹› '\\\\\\\\'
i = i - 1
Wend

With ActiveSheet.QueryTables.Add(Connection:= _
'TEXT;' & Fichier, Destination:=Range('A1'))
.Name = Mid(Fichier, i + 1, Longueur - i)
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1)
.Refresh BackgroundQuery:=False
End With




bonne soirée
MichelXld
 
L

Laurent

Guest
Bonsoir MichelXld

effectivement, c'est quasiment ce que je voulais! Merci ;)
Sinon, ce qui serait super (mais c'est pas indispensable, je suis dejà bien content du code que tu viens de me fournir) c'est que la boîte de dialogue qui s'ouvre soit toujours dirigée vers le même dossier (que j'aurais défini dans le code par exemple).

Voila...
en tout cas, merci et bonne soirée!

Laurent
 
L

Laurent

Guest
Salut Mytå, MichelXld

Je bien compris où il fallait placer ton bout de code Mytå! Néanmoins, j'ai réussi en allant dans
'outils'->'options'->'général' et en y changeant le dossier pas défaut...

Pas vraiment génial puisque cela s'applique à tous mes fichiers ouverts avec Excel, mais bon à défaut...

Merci à vous et bonne journée!

Laurent
 

JCGL

XLDnaute Barbatruc
Bonjour à tous

Essaye ceci : une adaptation de codes de Ti et du Forum VeriTi ;-)

Le fichier *.txt est Export.txt (cette application reconnait tous les *.txt du répertoire. Jette un oeil sur Export.txt avant et après Conversion

Ne t'inquiète pas de la présence d'un CommandButton et d'un Bouton : j'ai quelques soucis avec mes CommandButtons en ce moment (On ne sourit pas Véri...(niark))

[file name=Conversion.zip size=49981]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Conversion.zip[/file]

Message édité par: JCGL, à: 08/04/2006 15:01
 
Dernière édition:
L

Laurent

Guest
Bonjour à tous

Désolé JCGL mais j'ai essayé ton fichier et ton code m'ouvre tous les fichier .txt du répertoire!
Peut-être es-ce moi qui n'ai pas compris comment me servir de ton code?
En fait, ce que je voudrais arriver à faire
- c'est de pouvoir choisir le fichier que je souhaite ouvrir parmis plusieurs fichiers .txt(cela fonctionne grâce au code de MichelXld)
- définir (si possible dans mon code et non grâce à outils'->'options'->'général') le dossier que le code de MichelXld va ouvrir pour le choix du fichier .txt à ouvrir.

Voila...
Bonne journée à tous

Laurent
 

MichelXld

XLDnaute Barbatruc
bonjour à tous

Laurent, as tu essayé la modification proposée par Myta ?

Dim Fichier As Variant
Dim Longueur As Integer, i As Integer
Dim Repertoire As String

Repertoire = 'C:\\\\\\\\Documents and Settings\\\\\\\\michel\\\\\\\\dossier'
ChDir Repertoire


Fichier = Application.GetOpenFilename('Fichiers Texte (*.txt), *.txt')
If Fichier = False Then Exit Sub

Longueur = Len(Fichier)
i = Longueur
While Mid(Fichier, i, 1) ‹› '\\\\\\\\\\'
i = i - 1
Wend

With ActiveSheet.QueryTables.Add(Connection:= _
'TEXT;' & Fichier, Destination:=Range('A1'))
.Name = Mid(Fichier, i + 1, Longueur - i)
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1)
.Refresh BackgroundQuery:=False
End With



bon apres midi
MichelXld

Message édité par: michelxld, à: 11/04/2006 12:47
 
L

Laurent

Guest
Bonjour à tous, bonjour MichelXld

Je viens de comprendre d'où pourrait venir le problème!
Je m'explique:
lorsque je défini le répertoire qui m'interesse (grâce à la méthode de Mytå) cela fonctionne!
Merci Mytå :)
Néanmoins, cette méthode marche si le répertoire en question est sur mon ordinateur, ce qui n'est malheureusement pas le cas car le répertoire qui m'interesse est sur le réseau auquel mon ordi est relié!
Désolé, je viens seulement de réaliser cela...

Laurent
 

JCGL

XLDnaute Barbatruc
JCGL écrit:

Le fichier *.txt est Export.txt (cette application reconnait tous les *.txt du répertoire)

Voilà pourquoi je te prévenais...
J'en suis au balbutiement dans VBA et je suis très très loin d'atteindre le niveau des Barbatrucs et autres.

Désolé ne n'avoir pu t'aider, mais tu trouveras de l'aide ici. C'est sûr ;-)
 
L

Laurent

Guest
Bonjour MichelXld, JCGL et tout le forum!

Merci de votre aide, j'ai (grâce à vous ;) ) réussi à faire fonctionner mon fichier avec toutes vos infos!

Un grand merci!
Passez une bonne journée!

à bientôt sur le forum

Laurent
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 977
dernier inscrit
Hermet