Sub macro2()
Dim TabData() As Variant
Dim TabFinal() As Variant
Dim Tab1() As Variant
Dim Tab2() As Variant
With Sheets("BDD")
Nbl = .Range("B" & .Rows.Count).End(xlUp).Row - 3
TabData = .Range("B4:E" & Nbl + 3).Value
ReDim TabFinal(1 To 2 * Nbl, 1 To 4)
End With
With Sheets("Tableaux")
.Range("Tableau1").ClearContents
.Range("Tableau2").ClearContents
Tab1 = .Range("Tableau1").Value
Tab2 = .Range("Tableau2").Value
End With
For i = LBound(TabData, 1) To UBound(TabData, 1)
'MsgBox UBound(TabFinal, 1)
TabFinal(i, 1) = TabData(i, 1)
TabFinal(i + Nbl, 1) = TabData(i, 4)
TabFinal(i, 4) = TabData(i, 2)
TabFinal(i + Nbl, 4) = TabData(i, 3)
Next i
For i = LBound(TabFinal, 1) To UBound(TabFinal, 1)
If i <= 15 Then
For j = 1 To 4
Tab1(i, j) = TabFinal(i, j)
Next j
Else
For j = 1 To 4
Tab2(i - 15, j) = TabFinal(i, j)
Next j
End If
Next i
With Sheets("Tableaux")
.Range("Tableau1") = Tab1
.Range("Tableau2") = Tab2
End With
End Sub