importer un fichier TXT séparateur

hazein

XLDnaute Nouveau
Bonjour je voudrais savoir comment importer, en VBA, un fichier TXT avec séparateur tout en gardant la première ligne du fichier excel.
J'ai réussi à récupérer le fichier TXT et à l'exporter sur excel mais il me créer un nouveau fichier au lieu de le mettre sur la feuille active. De plus il garde les séparateurs.

Merci d'avance
 

mephis

XLDnaute Occasionnel
Re : importer un fichier TXT séparateur

bonjour, si tu veux que ton fichier se colle dans ton bon classeur il te faut :

Windows("nom de ton ficher").Activate
Range("A2").Select
ActiveSheet.Paste

Mais avec un fichier joint c'est plus facile!
 

mephis

XLDnaute Occasionnel
Re : importer un fichier TXT séparateur

bonjour, si tu veux que ton fichier se colle dans ton bon classeur il te faut :

Windows("nom de ton ficher").Activate
Range("A2").Select
ActiveSheet.Paste

Mais avec un fichier joint c'est plus facile!
 

hazein

XLDnaute Nouveau
Re : importer un fichier TXT séparateur

Merci pour ta réponse, comme demandé tu trouveras en pièce jointes le fichier excel et le fichier txt. Ce que je souhaite c'est d'importer le fichier TXT dans la feuille 1 du fichier Excel tout en gardant la première ligne.
merci d'avance
 

Pièces jointes

  • fruitsLegume.zip
    7.5 KB · Affichages: 86

Staple1600

XLDnaute Barbatruc
Re : importer un fichier TXT séparateur

Bonjour


Test OK sur mon PC
(à adapter à ton environnement)
Code:
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 29/07/2012 par Staple1600
'

Dim MonPaf$, SRC As Workbook, DST As Workbook
MonPaf = "C:\Temp\"
Set DST = ThisWorkbook
Workbooks.OpenText Filename:=MonPaf & "fruitsLegume.txt" _
        , Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True, _
        Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
        Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True
Set SRC = ActiveWorkbook
SRC.Sheets(1).UsedRange.Copy DST.Sheets(1).Cells(65536, 1).End(xlUp)(2)
SRC.Close False
End Sub

EDITION: Ce qu'on retire ici , faut quand même plus ou moins le remettre ailleurs ;) ... mais ca marche aussi dans cette variante ;)
Code:
Sub Macro1BIS()
'
' Macro1 Macro
' Macro enregistrée le 29/07/2012 par Staple1600
'
Dim MonPaf$, SRC As Workbook, DST As Workbook, c As Range
MonPaf = "C:\Temp\"
Set DST = ThisWorkbook
Workbooks.OpenText MonPaf & "fruitsLegume.txt"
Set SRC = ActiveWorkbook
SRC.Sheets(1).UsedRange.Copy DST.Sheets(1).Cells(65536, 1).End(xlUp)(2)
SRC.Close False
DST.Sheets(1).Range([A2], [A65536].End(xlUp)).TextToColumns [A2], 1, , , , True, , , , Array(Array(1, 2), Array(2, 2), Array(3, 1))
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : importer un fichier TXT séparateur

Re

Cela semble évident, non ? ;)
Workbooks.OpenText Filename:=MonPaf & "fruitsLegume.txt" _
, Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
Mettre False sur True
et pour plus de détails, faire la manip (ouvrir un fichier txt) en laissant tourner l'enregistreur de macros.
 

hazein

XLDnaute Nouveau
Re : importer un fichier TXT séparateur

comment protéger uniquement la première ligne sans pour autant protéger la feuille ? L'import du fichier TXT fonctionne très bien mais ne supprime pas les lignes existantes.
Je veux donc d'abord supprimer le contenu puis importer sans effacer l'entête (la première ligne)
 

Staple1600

XLDnaute Barbatruc
Re : importer un fichier TXT séparateur

Re


crée une macro avec l'enregistreur de macros quand tu effaces les données avant l'importation.
Puis ajoute le code obtenu à celui que j'ai posté précédemment.

Bref mets un peu les mains dans le cambouis ;)
 

Staple1600

XLDnaute Barbatruc
Re : importer un fichier TXT séparateur

Bonjour

Essaies pour voir
puis testes la macro d'importation...

PS: ta dernière question laisse à penser que tu n'as pas testé cette macro: Sub Macro1BIS()
sinon tu n'aurais pas posé ta dernière question ;)
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
459
Réponses
13
Affichages
512

Statistiques des forums

Discussions
312 332
Messages
2 087 361
Membres
103 530
dernier inscrit
Chess01