Copier données d'un TXT et femer fichier TXT

Bonjour à tous,

Je suis une quille en VBA et je me dépanne en fouillant sur le net. Ce code est dingue, autant je parviens à la lire, l'écrire m'est impossible, soit...

1. Je veux ouvrir un fichier txt dont le nom correspond au contenu d'une cellule. Ici, la données est dans la cellule "H1" de mon onglet "comparaison" (valeur = 0207877037).

2. j'aimerais que quand tout est copié il ferme le fichier TXT qui a été ouvert. Je pensais écrire MonApplication.Close (MonFichier) mais ça ne fonctionne pas.

Pour vous, ça sera probablement pas énorme, mais moi c'est toujours un défi. Désolé pour la propreté du code, c'est du rafistolé mais ça tourne sauf les deux points mentionnés :)

Au plaisir de vous lire.

Olivier

Voici le code :

Sub lecture()

Dim MonApplication As Object
Dim MonFichier As String
Set MonApplication = CreateObject("Shell.Application")

MonFichier = "C:\Data\2023\réconciliation_finprof\données_slr4\FINPR-P-202208 output\0207877037.txt"
MonApplication.Open (MonFichier)


N = FreeFile
Open MonFichier For Input As #N

i = 0
Do While Not EOF(1)
Line Input #N, Contenu
i = i + 1

Table = Split(Contenu, "=")
col = 0
For j = 0 To UBound(Table)
sousTable = Split(Table(j), "/")
For k = 0 To UBound(sousTable)
col = col + 1
Cells(i, col).Value = sousTable(k)
Next k
Next j

Loop

Close #N


ActiveWindow.ScrollWorkbookTabs Sheets:=10
Sheets("202008").Select
ActiveWindow.SmallScroll Down:=-36
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 1), Array(12, 1), Array(22, 1), Array(32, 1), Array(42, 1), _
Array(52, 1)), TrailingMinusNumbers:=True


End Sub

bonjour,

pourrais-tu mettre un exemple du fichier TXT ?

170207877037.txt (911.00 Octets)

Bonjour,

voilà un exemple du fichier txt que je dois copier.

J'ai trouvé pour ouvrir le fichier en fonction du contenu d'une cellule, je l'avais demandé il y a deux ans mais ça ne marchait plus,

A force de bidouiller ça fonctionne maintenant.

Ce que je voudrais c'est pouvoir fermer automatiquement le fichier .txt que j'ai ouvert

Bonjour,

Tu n'as nul besoin d'ouvrir le fichier par une application tierce...

La ligne :

Open MonFichier For Input As #N

le fait déjà.

Tu peux supprimer les 3 lignes ayant trait à "MonApplication" : (avec le commentaire en vert)

Dim MonApplication As Object 'Celle-ci
Dim MonFichier As String
Set MonApplication = CreateObject("Shell.Application") 'Celle-ci

MonFichier = "C:\Data\2023\réconciliation_finprof\données_slr4\FINPR-P-202208 output\" & Range("H1").Value
MonApplication.Open (MonFichier) 'Celle-ci

Bonne journée

Ah ben il ferme bien aussi maintenant,

merci pour la simplification ça permet au reste de bien fonctionner du coup :)

tout marche nickel

Au plaisir :)

Rechercher des sujets similaires à "copier donnees txt femer fichier"