changer l'extension pour une collection de fichier

Sebwan

XLDnaute Nouveau
Bonjour à tous,

J'ai un programme qui me sort tout des fichiers .txt et j'aimerais les transformer en fichier .xls .

Pour ce faire, j'aimerais utiliser les formules de type file collection(voir ci-dessous), et récupérer toute la liste des mes fichiers txt, puis d'extraire de f1.name le nom du fichier (sans l'extension) afin de le sauvegarder en.xls .

1°) Est-ce possible?

2°) Si oui, comment? :D

Merci d'avance

Code:
Dim fs, f, f1, fc, s
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(specdossier)
    Set fc = f.Files
    For Each f1 in fc
        s = s & f1.name 
        s = s & vbCrLf
    Next
    MsgBox s
 

tototiti2008

XLDnaute Barbatruc
Re : changer l'extension pour une collection de fichier

Re,

pour les renommer :

Code:
Sub test()
Dim fs, f, f1, fc, s
specdossier = "C:\DossierAA"
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(specdossier)
    Set fc = f.Files
    For Each f1 In fc
        If UCase(f1.Name) Like "*.TXT" Then
            Name specdossier & "\" & f1.Name As specdossier & "\" & Left(f1.Name, Len(f1.Name) - 4) & ".xls"
        End If
    Next
End Sub

pour les convertir, à part les ouvrir avec un OpenText et les enregistrer sous, je ne vois pas...
 

Staple1600

XLDnaute Barbatruc
Re : changer l'extension pour une collection de fichier

Re

EDITION:

Une version modifiée plus lisible
Code:
Sub import_ii()
Dim fs
Set fs = Application.FileSearch
Application.ScreenUpdating = False
    With fs
    .LookIn = "C:\temp"
    .Filename = "*.txt"
        If .Execute > 0 Then
        For i = 1 To .FoundFiles.Count
        Workbooks.OpenText .FoundFiles(i), xlWindows, 1, _
        xlDelimited, xlDoubleQuote, True, False, True
        ActiveWorkbook.SaveAs Left(.FoundFiles(i), _
        Len(.FoundFiles(i)) - 4), FileFormat:=xlNormal
        ActiveWorkbook.Close SaveChanges:=True
        Next i
        End If
    End With
Application.ScreenUpdating = True
End Sub




Un exemple simple

Ici le séparateur est le ;

Code:
Sub import()
Dim fs
Set fs = Application.FileSearch
With fs
.LookIn = "C:\temp"
.Filename = "*.txt"
If .Execute > 0 Then
For i = 1 To .FoundFiles.Count
Workbooks.OpenText Filename:=.FoundFiles(i) _
, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, Tab:=False, Semicolon:=True, Comma:=False, _
Space:=False, Other:=False
ActiveWorkbook.SaveAs Left(.FoundFiles(i), Len(.FoundFiles(i)) - 4), FileFormat:=xlNormal
ActiveWorkbook.Close SaveChanges:=True
Next i
End If
End With
End Sub
 
Dernière édition:

Discussions similaires

Réponses
19
Affichages
2 K

Membres actuellement en ligne

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa