XL 2016 Optimisation d'une boucle

thivame

XLDnaute Junior
Bonjour a vous,
J'ai créé une boucle dans un onglet afin de récupérer des informations et les mettre sur un autre onglet si ça rempli deux conditions.
Celle ci fonctionne mais est assez lente pour "seulement" 250 lignes.
A votre avis est il possible de l'optimiser ?
Private Sub CommandButton1_Click()

Sheets("les entrées").Range("a6:w500") = Clear

'Application.ScreenUpdating = False

'Application.EnableEvents = False



Dim nom As String

nom = Sheets("les entrées").Range("i1")

derniereligne = Sheets(nom).Cells(Rows.Count, 1).End(xlUp).Row

Sheets("les entrées").Range("a6:w500") = Clear

If Sheets("les entrées").Range("c3") <> "" And Sheets("les entrées").Range("f3") <> "" Then

MsgBox "il faut choisir : soit manifestation soit evenement"

Sheets("les entrées").Range("c3") = Clear

Sheets("les entrées").Range("f3") = Clear

Exit Sub

End If



For i = 5 To derniereligne



If Sheets(nom).Range("d" & i).Value = Sheets("les entrées").Range("C3").Value And Year(Sheets(nom).Range("F" & i)) = Sheets("les entrées").Range("l1") Then





Worksheets("les entrées").Range("B" & Rows.Count).End(xlUp).Offset(1, 0) = Sheets(nom).Range("ab" & i).Value

Worksheets("les entrées").Range("b" & Rows.Count).End(xlUp).Offset(0, 1) = Sheets(nom).Range("c" & i).Value

Worksheets("les entrées").Range("b" & Rows.Count).End(xlUp).Offset(0, 2) = Sheets(nom).Range("b" & i).Value

Worksheets("les entrées").Range("b" & Rows.Count).End(xlUp).Offset(0, 3) = Sheets(nom).Range("e" & i).Value

Worksheets("les entrées").Range("b" & Rows.Count).End(xlUp).Offset(0, 4) = Sheets(nom).Range("d" & i).Value

Worksheets("les entrées").Range("b" & Rows.Count).End(xlUp).Offset(0, 5) = Sheets(nom).Range("w" & i).Value

Worksheets("les entrées").Range("b" & Rows.Count).End(xlUp).Offset(0, 6) = Sheets(nom).Range("f" & i).Value

Worksheets("les entrées").Range("b" & Rows.Count).End(xlUp).Offset(0, 7) = Sheets(nom).Range("h" & i).Value

Worksheets("les entrées").Range("b" & Rows.Count).End(xlUp).Offset(0, 8) = Sheets(nom).Range("j" & i).Value

Worksheets("les entrées").Range("b" & Rows.Count).End(xlUp).Offset(0, 9) = Sheets(nom).Range("l" & i).Value

Worksheets("les entrées").Range("b" & Rows.Count).End(xlUp).Offset(0, 10) = Sheets(nom).Range("n" & i).Value

Worksheets("les entrées").Range("b" & Rows.Count).End(xlUp).Offset(0, 11) = Sheets(nom).Range("p" & i).Value

Worksheets("les entrées").Range("b" & Rows.Count).End(xlUp).Offset(0, 12) = Sheets(nom).Range("r" & i).Value

Worksheets("les entrées").Range("b" & Rows.Count).End(xlUp).Offset(0, 13) = Sheets(nom).Range("t" & i).Value

Worksheets("les entrées").Range("b" & Rows.Count).End(xlUp).Offset(0, 14) = Sheets(nom).Range("v" & i).Value

Worksheets("les entrées").Range("b" & Rows.Count).End(xlUp).Offset(0, 15) = Sheets(nom).Range("g" & i).Value

Worksheets("les entrées").Range("b" & Rows.Count).End(xlUp).Offset(0, 16) = Sheets(nom).Range("z" & i).Value

Worksheets("les entrées").Range("b" & Rows.Count).End(xlUp).Offset(0, 18) = Sheets(nom).Range("af" & i).Value
End If

Next

'Application.ScreenUpdating = True

'Application.EnableEvents = True

End Sub
Merci par avance pour votre aide
 

thivame

XLDnaute Junior
Bonjour ChTi160,
Par acquis de conscience j'ai mis "option explicit" sur toutes mes feuilles.. j'avoue j'ai galéré pour une ou deux déclaration.. Mais heureusement il y a des personnes avec l'esprit généreux ,comme vous, qui m'ont aidé ou inspiré...
Cordialement
 

Discussions similaires

Réponses
2
Affichages
329

Statistiques des forums

Discussions
315 104
Messages
2 116 252
Membres
112 697
dernier inscrit
administratif@ets-delestr