Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
XL 2019Copier une cellule d'une ligne toutes les 5 lignes
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Sub TirerCellule()
Dim source As Range, dest As Range, pas&, n
Set source = [A1]
Set dest = [B1]
pas = 5
n = Int(Val(Application.InputBox("Nombres de cellules à remplir :")))
dest.EntireColumn.Replace source, "", xlWhole 'RAZ
If n < 1 Then Exit Sub
dest = source
For n = 1 To n - 1
dest.Offset(pas) = dest
Set dest = dest.Offset(pas)
Next
End Sub
Re,
"Just for the fun" un simple essai avec plusieurs solutions VBA pour voir quel algo serait le plus rapide, par boucle, par formules, par array, pour un nombre élevé de cellules à remplir.
Sur mon PC l'approche par formule est le plus rapide.
L'inconvénient de la solution ave formules c'est qu'elle efface les autres cellules.
Pour l'array il vaut mieux écrire :
VB:
Sub TirerCellule3()
' Par array
Dim T0, n, T, V
T0 = Timer
n = [E4]: V = [A1]
[B:B].Replace V, "", xlWhole
T = Range("B1:B" & 5 * n)
For i = 1 To 5 * n Step 5
T(i, 1) = V
Next i
[B1].Resize(UBound(T, 1), UBound(T, 2)) = T
[E12] = Timer - T0
End Sub
Je me suis aperçu que plus la version XL est récente plus les formules sont "lentes". Très surement par optimisation sur d'autres critères que le temps. Par contre elles sont de plus en plus puissantes.
Une sorte d'équilibre : on perd un tout petit peu de temps mais on gagne énormément en puissance.
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD