Macro ouvrir fichier ".txt"

gourdin

XLDnaute Impliqué
Bonjour,

Je souhaite ouvrir le fichier excel « monfichier.xls » puis en cliquant sur un bouton déclencher une macro qui réalise les actions suivantes :

1. Ouvrir le fichier « monfichier.txt » situé dans le même répertoire que le fichier excel.
2. Copier tout le texte.
3. Fermer le fichier « monfichier.txt ».
4. Coller tout dans le fichier excel en A1.

Merci
 

JNP

XLDnaute Barbatruc
Re : Macro ouvrir fichier ".txt"

Bonjour le fil :),
Tu es dur, Michel, Henry n'enregistre pas les actions dans les autres applications :p.
Une insertion de données format texte donnera une requête dont tous le texte ne sera pas en A1 :D...
Code:
Sub test()
Dim fs, a
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.OpenTextFile(ThisWorkbook.Path & "\monfichier.txt")
Cells(1, 1) = a.readall
a.Close
End Sub
ne se trouvera que dans l'aide :rolleyes:...
Bonne journée :cool:
 

gourdin

XLDnaute Impliqué
Re : Macro ouvrir fichier ".txt"

Merci pour le code

J'ai mis le fichier "monfichier.txt" dans le repertoire "monrepertoire"
avec le fichier excel "essai.xls".

La macro ne fonctionne pas.

Un erreur de ma part peut être lié au chemin d'accès ?

Merci

Ci joint le fichier excel
 

Pièces jointes

  • essai.xls
    23.5 KB · Affichages: 65
  • essai.xls
    23.5 KB · Affichages: 59
  • essai.xls
    23.5 KB · Affichages: 64

JNP

XLDnaute Barbatruc
Re : Macro ouvrir fichier ".txt"

Re :),
Bizarre, ton fichier fonctionne très bien chez moi.
Elle ne fait rien ou elle plante, chez toi?
Une subtilité 2003 ? Un TXT trop important ?
Où alors un problème dans ton fichier TXT. Peux-tu le joindre (en le zippant) ?
A + :cool:
 

MJ13

XLDnaute Barbatruc
Re : Macro ouvrir fichier ".txt"

Re à tous

Je ne comprend pas.

On demande un fichier .TXT et on nous livre un fixchier XLS.

C'est le monde à l'envers :eek:.

Sinon si une personne n'est pas capable d'ouvrir facilement sur Excel un fichier txt, c'est que ce n'est peut être pas un fichier .txt.

Comme le dit Tototiti:

mais l'ami Henry peut trés bien créer du code avec OpenText
On enregistre :
Menu Fichier - Ouvrir
Type de fichier : *.txt
...

Je l'utilise depuis 20 ans et jamais eu de problèmes. Après si on veut se compliquer la vie, on peut essayer autrement. Mais j'essaie toujours d'avoir une solution accessible à tous pour éviter d'encombrer le forum avec des demandes qui risquent de dépasser l'entendement :mad:.
 

gourdin

XLDnaute Impliqué
Re : Macro ouvrir fichier ".txt"

Le Message d'erreur qui apparait :
"Erreur d'execution
Mémoire insusisante"

En cliquant sur débogage j'ai la ligne suivante qui est concernée
"Cells(1, 1) = a.readall"

J'ai fais un essai sur un petit fichier texte celà fonctionne parfaitement.
C'est donc un problème de taille de fichier texte qui fait 501 ko

Y il at-il un moyen pour que celà fonctionne meme avec un fichier de cette taille (celà fonctionne sans macro) ?

Merci
 

JNP

XLDnaute Barbatruc
Re : Macro ouvrir fichier ".txt"

Re :),
Je l'utilise depuis 20 ans et jamais eu de problèmes. Après si on veut se compliquer la vie, on peut essayer autrement. Mais j'essaie toujours d'avoir une solution accessible à tous pour éviter d'encombrer le forum avec des demandes qui risquent de dépasser l'entendement :mad:.
Désolé, j'ai peut-être mal compris la question :eek:. Pour moi, la demande était de mettre l'intégralité du fichier dans la cellule A1. Rien dans les autres cellules. Or les procédures d'ouverture de TXT ou d'importation de TXT interprètent les tabulations (ou autres caractères suivant les réglages) comme un changement de colonne, et les sauts de lignes comme un changement de ligne. D'où ma proposition, car je ne vois pas comment obtenir ce résultat via l'enregistreur de macro.
Bonne fin de journée :cool:
 

JNP

XLDnaute Barbatruc
Re : Macro ouvrir fichier ".txt"

Re :),
Le Message d'erreur qui apparait :
"Erreur d'execution
Mémoire insusisante"

En cliquant sur débogage j'ai la ligne suivante qui est concernée
"Cells(1, 1) = a.readall"

J'ai fais un essai sur un petit fichier texte celà fonctionne parfaitement.
C'est donc un problème de taille de fichier texte qui fait 501 ko

Y il at-il un moyen pour que celà fonctionne meme avec un fichier de cette taille (celà fonctionne sans macro) ?
Effectivement, j'avais mal compris, mettre 500 ko de caractères dans une cellule, ça ne risque pas de passer :rolleyes:.
Donc en utilisant l'enregistreur comme indiqué par Michel et TotoTiti
Code:
Sub Macro1()
    ChDir [COLOR=red]ThisWorkbook.Path
[/COLOR]    Workbooks.OpenText Filename:= _
        [COLOR=red]ThisWorkbook.Path & [/COLOR]"\monfichier.txt", _
        Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _
        , Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
        TrailingMinusNumbers:=True
End Sub
il suffit de modifier (en rouge) pour que ce soit le chemin du fichier XLS qui soit pris en compte ;).
Toutes mes excuses pour ma méprise :eek:.
A + :cool:
 

MJ13

XLDnaute Barbatruc
Re : Macro ouvrir fichier ".txt"

RE JNP

D'où ma proposition, car je ne vois pas comment obtenir ce résultat via l'enregistreur de macro.

Normalement avec l'assistant import, tu peux régler un maximum de cas :).

Et les données sont enregistrées dans la macro. Wait je regarde sous XL2007 :confused:.

Bon , j'ai même pas besoinde chercher, tu l'as trouvé sous XL2010 :).
 

gourdin

XLDnaute Impliqué
Re : Macro ouvrir fichier ".txt"

Désolé si je n'ai pas été assez clair.

En fait je fais un copier coller de données texte en A1
(le fichier texte est un fichier à télécharger à partir d'une base de données)

Le résultat dans excel quand je le fais sans macro et qui me convient :

Seules les cellules de la colonne A1 à A1783 se remplissent.

(ensuite je remettrai en forme avec la fonction convertir en complétant la macro (Henry:)). )
 

Discussions similaires

Réponses
3
Affichages
516
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 198
Messages
2 086 133
Membres
103 128
dernier inscrit
pmordel@parisbrestconsult