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
|
Option Explicit
Sub BouclerSurLaTableDesTypes()
Dim AireDesTypes As Range, CelluleDesTypes As Range
Dim AireDesDonnees As Range, CelluleDesDonnees As Range
Dim DerniereColonne As Long, DerniereLigne As Long
Dim Chemin As String
Chemin = ThisWorkbook.Path & "\Export"
' Chemin = ThisWorkbook.Path
Set AireDesTypes = Sheets("Paramètres").ListObjects("TableDesTypes").DataBodyRange
With Sheets("Feuil1")
DerniereColonne = .UsedRange.SpecialCells(xlCellTypeLastCell).Column
DerniereLigne = .Cells(.Rows.Count, 1).End(xlUp).Row
Set AireDesDonnees = .Range(.Cells(1, 1), .Cells(DerniereLigne, 1))
End With
Application.ScreenUpdating = False
For Each CelluleDesTypes In AireDesTypes
Exporter2 AireDesDonnees, CelluleDesTypes, Chemin
Next CelluleDesTypes
Application.DisplayAlerts = False
Set AireDesTypes = Nothing
Set AireDesDonnees = Nothing
End Sub
Sub Exporter2(ByVal Airedesdonnees2 As Range, ByVal TypeChoisi As String, Chemin2 As String) 'copie sauvegarde rapport
Dim CheminCsv As String
Dim Plage As Range, oL As Range, oC As Range
Dim Tmp As String, Sep As String
CheminCsv = Chemin2 & "\" & TypeChoisi & ".csv"
Sep = ";"
Open CheminCsv For Output As #1
' Copie de la ligne de titre
Tmp = ""
Set Plage = Range(Airedesdonnees2(1), Airedesdonnees2(1).Offset(0, 6))
For Each oC In Plage
Tmp = Tmp & CStr(oC.Text) & Sep
Next oC
Print #1, Tmp
Set Plage = Nothing
For Each oL In Airedesdonnees2
Tmp = ""
If oL = TypeChoisi Then
Set Plage = Range(oL, oL.Offset(0, 6))
For Each oC In Plage
Tmp = Tmp & CStr(oC.Text) & Sep
Next oC
Print #1, Tmp
Set Plage = Nothing
End If
Next oL
Close
End Sub |
Partager