Import d'un fichier .txt

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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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
 
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
 
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:
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
 
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
 
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 é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 ;-)
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 CSV en EXCEL
Réponses
1
Affichages
97
Retour