Excel VBA - Problème loop

Résolu
sygmajf99 Messages postés 18 Statut Membre -  
eriiic Messages postés 25847 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
A voir également:

3 réponses

Utilisateur anonyme
 
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
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
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...)
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 279
 
Bonsoir michel et tous les autres,

Michel, Application.ScreenUpdating = True est oublié, ou c'est que l'on peut s'en passer car rétabli en sortant de la macro ?
Bonne année à tous :)
eric
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Bonjour Eriic et tout le monde
c'est rétabli en sortant de la macro, attention toutefois si la la macro ne rend pas la main au systeme
source:
http://xcell05.free.fr/pages/prog/accvba.htm#ScreenUpdating
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 279
 
Re,

Je me doutais d'un truc comme ça.... ;-)
eric
0
sygmajf99 Messages postés 18 Statut Membre
 
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
0