Importation fichier txt délimité par "|" en VBA

  • Initiateur de la discussion Initiateur de la discussion Soleil11
  • 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 !

Soleil11

XLDnaute Occasionnel
Bonjour,

J'essaie d'importer les données d'un fichier TXT delimité par un "|" dans un fichier Excell mais cela ne marche pas. Comment puis-je importé un fichier avec délimitation en pipe "|". Pourriez-vous m'aider avec le code ci-dessous. Actuellement le code ci-dessous importe les données que dans la colonne A, et j'aimerait qu'il importe les données selon la délimitation choisie "|" dans les différentes colonnes de mon fichier excell.

Code:
Sub ExtracTXTfile()

Dim Repertoire As String, Fichier As String
Dim strFullName As Variant
Dim Cn As Object, Rs As Object

'Sélection du ficher
strFullName = Application.GetOpenFilename("Fichiers textes (*.txt),*.txt", , "Sélectionnez un fichier :")

'On sort si aucun fichier n'est sélectionné
If strFullName = False Then Exit Sub

Application.ScreenUpdating = False
Fichier = Dir(strFullName)
Repertoire = Left(strFullName, Len(strFullName) - (Len(Fichier) + 1))


'Connection
Set Cn = CreateObject("ADODB.Connection")
Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Repertoire & ";" & _
"Extended Properties=""text;HDR=yes;FMT=Delimited(|)"""

'Requete
Set Rs = CreateObject("ADODB.Recordset")
Rs.Open "SELECT * FROM [" & Fichier & "]", Cn, 3, 1, 1

'boucle sur le résultat de la requete
While Not Rs.EOF
'Ajout Feuille
Worksheets.Add
'Ecriture des données dans la feuille
'65536 spécifie le nombre de lignes par feuille(à toi de choisir le nombre)
ActiveSheet.Range("A1").CopyFromRecordset Rs, 300000
Wend

Rs.Close
Set Rs = Nothing
Cn.Close
Set Cn = Nothing
Application.ScreenUpdating = True

End Sub

Merci d'avance.

Soleil11
 
Re : Importation fichier txt délimité par "|" en VBA

Bonjour,

J'essaie d'importer les données d'un fichier TXT delimité par un "|" dans un fichier Excell mais cela ne marche pas. Comment puis-je importé un fichier avec délimitation en pipe "|". Pourriez-vous m'aider avec le code ci-dessous. Actuellement le code ci-dessous importe les données que dans la colonne A, et j'aimerait qu'il importe les données selon la délimitation choisie "|" dans les différentes colonnes de mon fichier excell.

Code:
Sub ExtracTXTfile()

Dim Repertoire As String, Fichier As String
Dim strFullName As Variant
Dim Cn As Object, Rs As Object

'Sélection du ficher
strFullName = Application.GetOpenFilename("Fichiers textes (*.txt),*.txt", , "Sélectionnez un fichier :")

'On sort si aucun fichier n'est sélectionné
If strFullName = False Then Exit Sub

Application.ScreenUpdating = False
Fichier = Dir(strFullName)
Repertoire = Left(strFullName, Len(strFullName) - (Len(Fichier) + 1))


'Connection
Set Cn = CreateObject("ADODB.Connection")
Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Repertoire & ";" & _
"Extended Properties=""text;HDR=yes;FMT=Delimited(|)"""

'Requete
Set Rs = CreateObject("ADODB.Recordset")
Rs.Open "SELECT * FROM [" & Fichier & "]", Cn, 3, 1, 1

'boucle sur le résultat de la requete
While Not Rs.EOF
'Ajout Feuille
Worksheets.Add
'Ecriture des données dans la feuille
'65536 spécifie le nombre de lignes par feuille(à toi de choisir le nombre)
ActiveSheet.Range("A1").CopyFromRecordset Rs, 300000
Wend

Rs.Close
Set Rs = Nothing
Cn.Close
Set Cn = Nothing
Application.ScreenUpdating = True

End Sub

Merci d'avance.

Soleil11

Rebonjour,

J'ai importé le fichier txt dans les pièces jointes.

Merci encore de votre aide.

Soleil11😕
 

Pièces jointes

Re : Importation fichier txt délimité par "|" en VBA

Rebonjour,

J'ai oublié de répondre à vos deux questions, oui j'arrive à l'importer manuellement en délimitant moi même le fichier avant de l'importer sur Excell. Concernant votre deuxième question je ne suis pas sûre de comprendre pourquoi je dois utiliser l'enregistreur de macro.

Bonne journée.

Soleil11
 
Re : Importation fichier txt délimité par "|" en VBA

Re

en utilisant l'enregistreur de macro (ouverture fichier txt, copie, fermeture txt) j'obtiens

Code:
    ChDir "C:\Users\EricCathy\Desktop\essais XL"
    Workbooks.OpenText Filename:= _
        "C:\Users\EricCathy\Desktop\essais XL\importTest.txt", Origin:=-535, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=True, OtherChar:="|", FieldInfo:=Array(Array(1, 1 _
        ), Array(2, xlSkipColumn), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _
        Array(9, 1)), TrailingMinusNumbers:=True
    Columns("A:I").Select
    Selection.Copy
    Windows("Classeur1").Activate
    Range("A1").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Windows("importTest.txt").Activate
    ActiveWindow.Close
j'ai juste modifié Array(2, 1), en Array(2, xlSkipColumn), pour vérifier la possibilité de ne pas sélectionner une colonne et vidé le presse papier en fin de macro

là je vais y aller, j'espère que cela te donne une piste
 
- 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

Discussions similaires

  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
639
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
79
Réponses
4
Affichages
362
Retour