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
| Option Explicit
Sub TransposeBase()
Dim CellInA As Range
Dim Destination As Range, iRow As Long, iCol As Integer
Dim OffsetCol As Variant
Dim TotalChiffre As Byte
'On pointe la cellule de destination
Set Destination = Feuil3.Range("A1")
'On place les données à partir de la 1ère ligne et de la 1ère colonne
iRow = 1
iCol = 1
'On commence par boucler sur le contenu de la colonne A
For Each CellInA In Feuil1.Range("A2", Feuil1.Cells(Feuil1.Rows.Count, "A").End(xlUp))
'On cumule les valeurs de Chiffre
TotalChiffre = TotalChiffre + CellInA.Offset(, 1).Value
'On regarde si on dépasse 14
If TotalChiffre > 14 Then
'On se décale de 5 lignes
iRow = iRow + 5
'On retourne à la 1ère colonne
iCol = 1
'On recommence à compter
TotalChiffre = CellInA.Offset(, 1).Value
End If
'On copie les données
With Feuil3
.Cells(iRow, iCol).Value = CellInA.Offset(, 2).Value
.Cells(iRow + 1, iCol).Value = CellInA.Offset(, 3).Value
.Cells(iRow + 2, iCol).Value = CellInA.Offset(, 0).Value
.Cells(iRow + 3, iCol).Value = CellInA.Offset(, 1).Value
End With
'On passe à la colonne suivante
iCol = iCol + 1
Next
End Sub |
Partager