import fichiers txt excel bug

matlatarte

XLDnaute Junior
Bonjour en recoupant plusieurs méthodes j'ai réussis (non sans mal) à importer des fichiers txt dans des colonnes excel. Le code fonctionnait bien MAIS en ressortant du fichier excel et en rerentrant plus rien de fonctionne erreur 53 fichier introuvable alors que rien n'a changé ! BUG ? Je n'y connais pas grand chose...

Quelqu'un pourrait m'aider à trouver un code qui ne bug pas, qui récupère le contenu des txt du dossier cible et les copie / colle dans les colonnes de mon fichier excel (ici à partir de c2) ?

Il y a aussi dans le tableur tout un tas de petits codes pour m'organiser les données. N'y faite pas attention...cela doit pas être beau à voir !

voici le code qui bug:
Open FsoFichier.Name For Input As #1

et plus généralement

Dim Fso As Object
Dim FsoRepertoire As Object
Dim FsoFichier As Object

Dim str() As String
Dim strLigne As String

Dim i As Long
Dim c As Integer

c = 2

Set Fso = CreateObject("Scripting.FileSystemObject")
Set FsoRepertoire = Fso.GetFolder("C:\TEST")

'Boucle sur fichiers du repertoire
iCopie = 2
For Each FsoFichier In FsoRepertoire.Files

str = Split(FsoFichier.Name, ".")

If str(UBound(str)) = "txt" Then

Open FsoFichier.Name For Input As #1
i = 1
Do While Not EOF(1)

Line Input #1, strLigne
Cells(i, c).Value = strLigne
i = i + 1

Loop

c = c + 1
Close #1

End If

Next

Set Fso = Nothing: Set FsoRepertoire = Nothing: Set FsoFichier = Nothing

ci joint mon fichier excel pour illustrer avec un txt.

Ça fait tout l'après midi que je cherche j'en peux plus !
 

Pièces jointes

  • TEST (2).zip
    37.6 KB · Affichages: 7

matlatarte

XLDnaute Junior
oui j'ai été voir mais à priori je ne comprend pas ce qui peut être en cause car si le fichier n'existe pas je n'ai pas d'erreur ! ce n'est que lorsqu'il existe un fichier à importer que cela bug (et ça a marché pourtant !) il m'indique
Open FsoFichier.Name For Input As #1
comme ligne qui bug...
J'ai essayé plusieurs casse pour le nom de répertoire rien n'y fait, viré la compression windows sur le fichier, pas ça non plus bug excel ? ça marche chez vous ?
 
Dernière édition:

matlatarte

XLDnaute Junior
ça devait être ça !
au passage j'ai un souci qui ressemble: une formule qui marchait et qui ne marche plus (dans un module 2 --- en module 1 la même formule marche bien pour un autre dossier...)

si pas de txt pas d'erreur si un txt erreur chemin/accès fichier erreur 75...

Dim Fic As String
Fic = Dir("C:\test\*.txt")

Do While Fic <> ""
Kill "C:\test\" & Fic

Fic = Dir
Loop

une idée ?
 

Staple1600

XLDnaute Barbatruc
Re

Oui.
Celle-ci ;)
VB:
Sub SupprTXT()
Dim Fic
Fic = Dir("C:\Users\STAPLE1600\TEST\*.txt")
Do While Fic <> ""
Kill "C:\Users\STAPLE1600\TEST\" & Fic
Fic = Dir
Loop
'EFFACE APRES
'Sheets("Collecte").Range("B1:BZ60000").ClearContents
'Sheets("Transpose").Rows("2:1000").ClearContents
End Sub
PS: Ne pas oublier de remettre le bon chemin du répertoire et de dé-commenter les 2 dernières lignes.
 
Dernière édition:

matlatarte

XLDnaute Junior
et je répète :

Dim Fic
Fic = Dir("C:\xampp\htdocs\QuizResults\result\*.log")

Do While Fic <> ""
Kill "C:\xampp\htdocs\QuizResults\result\" & Fic

Fic = Dir
Loop

cela fonctionne
et

Dim Fic
Fic = Dir("C:\xampp\htdocs\QuizResults\result\*.txt")

Do While Fic <> ""
Kill "C:\xampp\htdocs\QuizResults\result\" & Fic

Fic = Dir
Loop

erreur 75... comprend pas... peut être parce que ce sont les fichiers que j'importe dans excel ? Il les bloque ?

lignes d'importation:

Dim Fso As Object
Dim FsoRepertoire As Object
Dim FsoFichier As Object

Dim str() As String
Dim strLigne As String

Dim i As Long
Dim c As Integer

c = 2

Set Fso = CreateObject("Scripting.FileSystemObject")
Set FsoRepertoire = Fso.GetFolder("C:\xampp\htdocs\QuizResults\result")

'Boucle sur fichiers du repertoire
iCopie = 2
For Each FsoFichier In FsoRepertoire.Files

str = Split(FsoFichier.Name, ".")

If str(UBound(str)) = "txt" Then

Open FsoFichier For Input As #1

i = 1
Do While Not EOF(1)

Line Input #1, strLigne
Cells(i, c).Value = strLigne
i = i + 1

Loop

c = c + 1
Close #1

End If

Next

Set Fso = Nothing: Set FsoRepertoire = Nothing: Set FsoFichier = Nothing
 

Discussions similaires

Réponses
7
Affichages
540
Réponses
2
Affichages
592

Statistiques des forums

Discussions
314 651
Messages
2 111 557
Membres
111 201
dernier inscrit
netcam