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