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
| Option Explicit
Private Sub UserForm_Initialize()
'
' Code au lancement du UserForm
'
Label1.Caption = "Nom du fichier"
Btn1.Caption = "Lancer la macro"
'
End Sub
Private Sub Btn1_Click()
'
' Macro pour la séparation du fichier
'-------------------------------------------------------------------------------
'
' Ouverture du fichier source
'
Dim NomFichier As String
NomFichier = TextBox1.Text
'
Workbooks.OpenText Filename:= _
"C:\Users\JM\Downloads\" & NomFichier & ".csv", Origin:=xlMSDOS, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=True _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), _
Array(3, 5), Array(4, 1), Array(5, 1)), TrailingMinusNumbers:=True
'
Windows(NomFichier & ".csv").Visible = False
'
' Création des 2 fichiers de sortie
'
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="C:\Users\JM\Downloads\" & NomFichier & "_Juillet.csv"
'
Windows(NomFichier & "_Juillet.csv").Visible = False
'
Windows(NomFichier & ".csv").Activate
Rows("1:1").Select
Selection.Copy
Windows(NomFichier & "_Juillet.csv").Activate
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="C:\Users\JM\Downloads\" & NomFichier & "_Aout.csv"
'
Windows(NomFichier & "_Aout.csv").Visible = False
'
Windows(NomFichier & ".csv").Activate
Rows("1:1").Select
Selection.Copy
Windows(NomFichier & "_Aout.csv").Activate
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'
'
' Boucle sur la colonne date afin de déterminer si la ligne dois aller dans le fichier de Juillet ou Aout
'
Windows(NomFichier & ".csv").Activate
'
Dim i As Integer
'i = 2
For i = 2 To 12
'
'
If Range("C" & i).Value = "20150722" Then
'
Rows(i & ":" & i).Select
Selection.Copy
Windows(NomFichier & "_Juillet.csv").Activate
'
' Compteur pour avoir la dernière ligne du classeur et ensuite copier/coller les infos à la suite
'
Dim DerniereLigne1 As Long
DerniereLigne1 = Workbooks(NomFichier & "_Juillet.csv").Worksheets(1).UsedRange.Rows.Count + 1
'
Range("A" & DerniereLigne1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'
ElseIf Range("C" & i).Value = "20150801" Then
'
Rows(i & ":" & i).Select
Selection.Copy
Windows(NomFichier & "_Aout.csv").Activate
'
' Compteur pour avoir la dernière ligne du classeur et ensuite copier/coller les infos à la suite
'
Dim DerniereLigne2 As Long
DerniereLigne2 = Workbooks(NomFichier & "_Aout.csv").Worksheets(1).UsedRange.Rows.Count + 1
'
Range("A" & DerniereLigne2).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'
End If
'
Windows(NomFichier & ".csv").Activate
'
Next i
'
End
'
Workbooks(NomFichier & ".csv").Close SaveChanges:=False
Workbooks(NomFichier & "_Juillet.csv").Close SaveChanges:=True
Workbooks(NomFichier & "_Aout.csv").Close SaveChanges:=True
'
End Sub |
Partager