Sub Transposition()
Dim DL%, L%
Application.ScreenUpdating = False
DL = Range("A65500").End(xlUp).Row
Range("B1:C" & DL).ClearContents
For L = 1 To DL Step 3
Cells(L, "B") = Cells(L + 1, "A")
Cells(L, "C") = Cells(L + 2, "A")
Next L
End Sub
=SI(ESTNUM($A1);DECALER($A1;COLONNES($A:A););"")
Sub Transposition()
Dim DL%, L%
Application.ScreenUpdating = False
DL = Range("A65500").End(xlUp).Row
Range("B1:C" & DL).ClearContents
For L = 1 To DL Step 3
Cells(L, "B") = Cells(L + 1, "A")
Cells(L, "C") = Cells(L + 2, "A")
Next L
End Sub
Merci les gars c'est impeccable, les deux solutions fonctionnent super et je trouve sympa l'intérêt de Efgé.Re
@sylvanu
L'intêret d'utiliser Cells() est un gain de temps lié à l'utilisation de valeurs numériques dans l'adressage des cellules.
En utilisant une lettre tu nies le principe.
Pourquoi ne pas utiliser
CordialementVB:Cells(L + 1, 1)
Chez moi :De plus cela n'impacte pas le temps d'exécution.
Sub TestAlphaNum()
Dim T!
Dim i&, x&
T = Timer
For i = 1 To 10000000
x = Cells(Rows.Count, 1).End(xlUp).Row
Next i
Debug.Print Timer - T
End Sub
Sub TestAlphaNum()
Dim T!
Dim i&, x&
T = Timer
For i = 1 To 10000000
x = Cells(Rows.Count, "A").End(xlUp).Row
Next i
Debug.Print Timer - T
End Sub
Tout dépend de ses priorités.Choisi ton camps camarade...