Excel VBA - Problème loop
Résolu
sygmajf99
Messages postés
18
Statut
Membre
-
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai un problème avec cette macro, qui fait une ligne grasse à partir de la ligne 6, à chaque 2e ligne. Le loop prend trop de temps, sûrement puisque je le fais une cellule à la fois. Y-a-t'il un code qui va permettre une exécution plus rapide ?
Sub Macro1()
Dim k As Integer
Dim l As Integer
Dim m As Integer
k = 28
l = 6
Do While l <= Range("a4").End(xlDown).Row
For m = 1 To k
Cells(l, m).Select
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
Next m
l = l + 2
Loop
End Sub
Merci
J'ai un problème avec cette macro, qui fait une ligne grasse à partir de la ligne 6, à chaque 2e ligne. Le loop prend trop de temps, sûrement puisque je le fais une cellule à la fois. Y-a-t'il un code qui va permettre une exécution plus rapide ?
Sub Macro1()
Dim k As Integer
Dim l As Integer
Dim m As Integer
k = 28
l = 6
Do While l <= Range("a4").End(xlDown).Row
For m = 1 To k
Cells(l, m).Select
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
Next m
l = l + 2
Loop
End Sub
Merci
3 réponses
-
Bonjour sygmajf99
Essaie cette macro qui semble t-il donne le même résultat que celle que tu as proposée, mais tu devrais gagner du temps.
Sub test()
Dim m As Integer
Application.ScreenUpdating = False
For m = 6 To 28 Step 2
Rows(m & ":" & m).Select
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
Next m
Application.ScreenUpdating = True
End Sub
Tiens moi au courant.
cdlmt -
Bonjour,
Sub Macro1() Dim col As Integer Dim lig As Integer dim derlig As integer col = 28 lig = 6 derlig=Range("a4").End(xlDown).Row Application.ScreenUpdating = False Do While lig <= derlig With Range(Cells(lig, 1), Cells(lig, col)).Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With lig = lig + 2 Loop End Sub
devrait aller +vite (on peut-^tre faire mieux mais...) -
AGI67 : Merci, mais ton code sélectionnait les lignes entières et les 28 premières lignes. Moi je voulais les 28 premières colonnes, et les lignes jusqu'à
Range("a4").End(xlDown).Row
michel_m : Tout baigne, et c'est rapide comme l'éclair.
Merci à vous 2.
Jean-François