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
| Option Explicit
Const shtFromName As String = "Feuil1"
Const shtToName As String = "Export"
Dim shtFrom As Worksheet, shtTo As Worksheet
Sub Methode1()
' Init
Dim rFrom As Long, rTo As Long, cto As Integer
Dim flagUser As Boolean, flagDate As Boolean, flagProject As Boolean
With ThisWorkbook
Set shtFrom = .Worksheets(shtFromName)
Set shtTo = .Worksheets(shtToName)
End With
' Test sur feuille de base
For rFrom = 1 To shtFrom.Range("A1").CurrentRegion.Rows.Count
flagUser = False: flagDate = False: flagProject = False
With shtFrom
Select Case True
Case IsDate(.Cells(rFrom, 1)) ' Date
flagDate = True
Case InStr(.Cells(rFrom, 1), "Projects") > 0 ' Projet
flagProject = True
Case Else ' Projet
flagUser = True
End Select
' Ecriture sur Feuille [Export]
rTo = rTo + 1
Select Case True
Case flagUser: cto = 1
Case flagDate: cto = 2
Case flagProject: cto = 3
End Select
shtTo.Cells(rTo, cto) = .Cells(rFrom, 1)
If cto = 2 Then shtTo.Cells(rTo, cto).NumberFormat = "dd/mm/yy;@"
If cto = 3 Then shtTo.Cells(rTo, 4) = .Cells(rFrom, 2)
If cto = 3 Then shtTo.Cells(rTo, 4) = .Cells(rFrom, 2)
End With
Next
End Sub
Sub Methode2()
' Init
Dim rFrom As Long, rTo As Long, cto As Integer
Dim User$, DateWrk As Date
With ThisWorkbook
Set shtFrom = .Worksheets(shtFromName)
Set shtTo = .Worksheets(shtToName & "2")
End With
' Test sur feuille de base
For rFrom = 1 To shtFrom.Range("A1").CurrentRegion.Rows.Count
With shtFrom
Select Case True
Case IsDate(.Cells(rFrom, 1)) ' Date
DateWrk = .Cells(rFrom, 1)
Case InStr(.Cells(rFrom, 1), "Projects") > 0 ' Projet
' Ecriture sur Feuille [Export]
rTo = rTo + 1
shtTo.Cells(rTo, 1) = User
shtTo.Cells(rTo, 2) = DateWrk
shtTo.Cells(rTo, 2).NumberFormat = "dd/mm/yy;@"
shtTo.Cells(rTo, 3) = .Cells(rFrom, 1)
shtTo.Cells(rTo, 4) = .Cells(rFrom, 2)
Case Else ' User
User = .Cells(rFrom, 1)
End Select
End With
Next
End Sub |
Partager