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 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
Dim Nb As Long
Const sExtension As String = "xls"
Const sNewExtension As String = "xlsx"
Const TypeFichier = "xls"
Public Sub ChangerExtensionFichiers(ByVal sDossier As String, bSousDossier As Boolean)
Dim FSO As Object
Dim Dossier As Object
Dim sFichier As String, F As String
Dim Pos As Long, i As Long, sExt As String
Dim TFichier() As String
Dim sNom As String
Application.ScreenUpdating = False
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Dossier = FSO.GetFolder(sDossier)
TFichier = Split(TypeFichier, ";")
sFichier = Dir$(sDossier & "\*.*")
Do While Len(sFichier) > 0
F = FSO.GetFileName(sFichier)
For i = LBound(TFichier) To UBound(TFichier)
If UCase(sFichier) <> UCase(ThisWorkbook.Name) Then
Pos = InStr(F, TFichier(i))
sExt = FSO.GetExtensionName(F)
If Pos > 0 And UCase(sExt) = UCase(sExtension) Then
sNom = Left$(F, Len(F) - Len(sExt))
Workbooks.Open Filename:=sDossier & "\" & sFichier
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=sDossier & "\" & sNom & "xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWorkbook.Close
Application.DisplayAlerts = True
Nb = Nb + 1
End If
Set FSO1 = CreateObject("Scripting.FileSystemObject")
Set fi = FSO1.GetFolder(Dossier)
Set fc = FS01.GetFileName(sFichier)
For Each fi In fc
If (fc.GetExtensionName = sExtension) Then
Set FS = CreateObject("Scripting.FileSystemObject")
FS.DeleteFile fi, True
If (fc.GetExtensionName = sNewExtension) Then
End
End If
End If
Next
End If
Next i
sFichier = Dir$()
Application.StatusBar = Nb
Loop
End Sub
Sub SelDossier()
Dim sStr As String
sStr = Replace(TypeFichier, ";", " ")
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = ThisWorkbook.Path & "\"
.Title = "Changement Extension fichiers ( " & sStr & " ) de " & UCase(sExtension) & " en " & UCase(sNewExtension)
.AllowMultiSelect = False
.InitialView = msoFileDialogViewDetails
.ButtonName = "Sélection Dossier"
.Show
Nb = 0
If .SelectedItems.Count > 0 Then
DoEvents
ChangerExtensionFichiers .SelectedItems(1), True
End If
End With
End Sub |
Partager