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
|
Sub bas()
Dim I As Integer
Dim J As Integer
For J = 2 To 5
I = 5
While I >= 3
'si la cellule est vide on retranche 1 à I
If Cells(I, J) = "" Then I = I - 1
'si la même cellule est toujours vide, ce qui est le cas
'car on rajoute 1 à I auquel on vient de retirer 1
If Cells(I + 1, J) = "" Then
'tant que la cellule est vide...
While Cells(I + 1, J) = ""
'on tranfère la valeur...
Cells((I + 1), J) = Cells(I, J)
Cells(I, J) = ""
'**************************************************
'et on retire 1 à I et là, il y a de fortes chances
'pour qu'on se trouve avec I = 0 d'où l'erreur !!!
I = I - 1
'**************************************************
Wend
End If
Wend
'ici, I vaut 2...
While Cells(I + 1, J) = Cells(I, J)
'on tranfère la valeur après avoir multiplié par 2...
Cells(I + 1, J) = 2 * Cells(I, J)
Cells(I, J) = ""
Wend
Next J
End Sub |
Partager