Bonsoir tout le monde
J'ai un petit soucis! Aidez moi svp! Je cherche à convertir un dossier contenant plusieurs fichier.txt en fichier.xls. J'ai repris le code réalisé par zebrou le lien ci après:
http://www.developpez.net/forums/d11...lonne-listbox/
Je vous mets ci-après le code :
Avant ce code marcher très bien! Depuis il ne marche plus ^^! Je ne sais pas ce que j'ai fais ^^. Mes fichiers.txt se présentent comme dans la pièce jointe avec un séparateur ";" et mes fichiers.xlsx se présentent comme dans la pièce jointe qui tient compte du séparateur ";". Mais sur la deuxième colonne des fichiers.xlsx la virgule "," disparaît alors qu'il y en a une sur les fichiers.txt.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 Public Sub Convertion() Dim fd As FileDialog Dim repertoire As String Set fd = Application.FileDialog(msoFileDialogFolderPicker) 'création d'une boite de dialogue choix de répertoire fd.AllowMultiSelect = False 'on ne peut choisir qu'un seul repertoire If fd.Show = -1 Then 'l'utilisateur à valider sa selection repertoire = fd.SelectedItems(1) 'le repertoire choisi TransformerTousLesFichiers repertoire End If End Sub 'Boucle sur tous les fichiers d'un répertoire Private Sub TransformerTousLesFichiers(ByVal repertoire As String) Dim fso As New FileSystemObject Dim fichier As File For Each fichier In fso.GetFolder(repertoire).Files 'pour chaque fichier du repertoire If Right(fichier.Name, 4) = ".txt" Then 'si c'est un fichier texte TransformerFichierTexteEnExcel fichier 'il effectue la transformation ci-dessous End If Next fichier End Sub 'Ouvre un fichier texte, sépare chaque ligne par ses "tab" et le met dans un fichier excel qui porte le même nom Private Sub TransformerFichierTexteEnExcel(ByRef fichier As File) Dim wb As Workbook Dim ws As Worksheet Dim chemin As String Dim nomFichier As String Dim numFic As Integer Dim i, iCol, iRow As Long Dim ligneFichier As String Dim ligneFichierSplit() As String Dim separateur As String chemin = fichier.ParentFolder.Path 'le chemin du fichier texte nomFichier = fichier.Name 'le nom du fichier texte nomFichier = Left(nomFichier, Len(nomFichier) - 4) & ".xlsx" 'qu'on transforme en fichier excel Set wb = Application.Workbooks.Add 'on ouvre un nouveau classeur wb.SaveAs chemin & "\" & nomFichier 'qu'on sauve sous le bon nom Set ws = wb.Worksheets(1) 'la première feuille numFic = FreeFile separateur = ";" Open fichier.Path For Input As #numFic 'ouverture du fichier texte iRow = 1 Do While Not EOF(numFic) 'tant que le fichier n'est pas parcouru en entier iCol = 1 Line Input #numFic, ligneFichier 'on récupère la ligne suivante ligneFichierSplit = Split(ligneFichier, separateur) 'on sépare la ligne dans un tableau For i = LBound(ligneFichierSplit) To UBound(ligneFichierSplit) 'on copie le tableau ws.Cells(iRow, iCol) = ligneFichierSplit(i) iCol = iCol + 1 Next iRow = iRow + 1 Loop Close #numFic 'fermeture du fichier texte wb.Save 'sauvegarde du fichier excel wb.Close 'fermeture du fichier excel End Sub
Je vous remercie de votre aide et de votre patience!
Partager