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 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
|
Sub un()
'1)CT01
Dim Sh As Worksheet
Dim i As Integer
Dim Rep As String
Dim Res
Application.ScreenUpdating = False
Rep = "Z:\Config\Bureau\Apres traitement\CT01" 'Ton répéeroire
Res = ListFichiers(Rep)
Set Sh = ThisWorkbook.Worksheets("feuille") 'La feuille de destination
For i = 1 To UBound(Res)
Call Transfert(Rep & "\" & Res(i), Sh)
Next i
Set Sh = Nothing
End Sub
Sub Transfert(ByVal FichierCSV As String, Ws As Worksheet)
Dim Wb As Workbook
Dim LastLig As Long, NewLig As Long
Application.ScreenUpdating = False
Set Wb = Workbooks.Open(Filename:=FichierCSV, local:=True)
With Wb.Worksheets(1)
LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
NewLig = Ws.Cells(Ws.Rows.Count, "A").End(xlUp).Row + 1
.Range("A4:A" & LastLig).Copy Ws.Range("A" & NewLig)
.Range("H4:H" & LastLig).Copy Ws.Range("Z" & NewLig)
.Range("E4:E" & LastLig).Copy Ws.Range("Y" & NewLig)
.Range("L4:L" & LastLig).Copy Ws.Range("AA" & NewLig)
.Range("O4:O" & LastLig).Copy Ws.Range("AB" & NewLig)
'...etc
'..Report des autres colonnes
'...etc
Ws.Range("A:A").NumberFormat = "[$-F400]h:mm:ss AM/PM"
End With
Wb.Close False
Set Wb = Nothing
End Sub
'Lister les fichiers triées
Function ListFichiers(ByVal Chemin As String) As String()
Dim i As Integer
Dim Fichier As String, Tb() As String
Fichier = Dir(Chemin & "\*.csv")
Do While Fichier <> ""
i = i + 1
ReDim Preserve Tb(1 To i)
Tb(i) = Fichier
Fichier = Dir
Loop
If i > 0 Then Quicksort Tb, 1, i
ListFichiers = Tb
End Function
'Sub de tri rapide
Sub Quicksort(T() As String, ByVal LoBound As Long, ByVal UpBound As Long)
Dim Hi As Integer, Lo As Integer, i As Integer
Dim Med As String
If LoBound >= UpBound Then Exit Sub
i = Int((UpBound - LoBound + 1) * Rnd + LoBound)
Med = T(i)
T(i) = T(LoBound)
Lo = LoBound
Hi = UpBound
Do
Do While T(Hi) >= Med
Hi = Hi - 1
If Hi <= Lo Then Exit Do
Loop
If Hi <= Lo Then
T(Lo) = Med
Exit Do
End If
T(Lo) = T(Hi)
Lo = Lo + 1
Do While T(Lo) < Med
Lo = Lo + 1
If Lo >= Hi Then Exit Do
Loop
If Lo >= Hi Then
Lo = Hi
T(Hi) = Med
Exit Do
End If
T(Hi) = T(Lo)
Loop
Quicksort T(), LoBound, Lo - 1
Quicksort T(), Lo + 1, UpBound
End Sub
'2)CT03
'Création d'une sous directory CT03bis
Sub deux()
MkDir "Z:\Config\Bureau\Apres traitement\CT03bis"
End Sub
'Déplacer les fichiers dans CT03bis
Sub trois()
Dim Fso As Object
Dim FsoRepertoire As Object
Dim FsoFichier As Object
Dim strRepertoire As String
strRepertoire = ThisWorkbook.Path
Set Fso = CreateObject("Scripting.FileSystemObject")
Set FsoRepertoire = Fso.GetFolder(ThisWorkbook.Path & "\CT03")
'Boucle sur fichiers du repertoire
For Each FsoFichier In FsoRepertoire.Files
If Left$(FsoFichier.Name, 10) = "CT3__T1A-7" Then
FsoFichier.Copy strRepertoire & "\CT03\" & FsoFichier.Name, True
FsoFichier.Move strRepertoire & "\CT03bis\" & FsoFichier.Name
End If
Next
End Sub |
Partager