RESULTAT plus rapide en pointant souris sur barre de tâche

andrekn13

XLDnaute Occasionnel
Bonjour
Suite à un rajout dans ma boucle, la macro met plus d'une minute à donner le résultat.
C'est en pointant avec la souris sur la barre de tâche , sans cliquer, que je me suis aperçu que cela arrêtait la macro etqu'il fallait en réalité 7 s pour donner le résultat.
quelqu'un aurait-il une explication à ce curieux phénomène ?

le code en question , qui marche mais trop long :
VarFROID = Array("H17", "H18", "E42", "D13", "D13", "D13", "D13", "K33", "K34", "E45", "E11", "B22", "E13", "E14", "E15", "F15", "K29", "K35") 'Positionne dans un tableau nommé Var les adresses de cellules à traiter
VarLENNOX = Array("H17", "H18", "E42", "D13", "D13", "D13", "D13", "K33", "K34", "E45", "E11", "B23", "E13", "E14", "E15", "F15", "K29", "K35")

For i = 6 To Sheets.Count 'Boucle sur les onglets
derligne = Sheets("2014").Range("A65535").End(xlUp).Row + 1 'Définit la derniere ligne remplie de la feuille Synthese
'If Sheets(i).Name <> "2014" And Sheets(i).Name <> "FACT FROID" Then 'Si on n'est pas sur la feuille Synthese donc si on est sur une facture ...
If Sheets(i).Range("H18") Like "*" & annee & "*" Then
For j = 1 To 18 'On boucle sur le Tableau Var qui contient les adresses à traiter dans la facture
If Sheets(i).Range("A22").Value Like "OBJET :" Then
Sheets("2014").Cells(derligne, j).Value = Sheets(i).Range(VarFROID(j - 1)).Value 'Range(Var(j - 1)) 'renvoie l'adresse de E1 puis E2 etc .. Cells(derligne, j) renvoie l'adresse de la cellule située sur la derniere ligne vide de synthese et j incremente la colonne

ActiveSheet.Hyperlinks.Add Anchor:=Cells(derligne, 1), Address:="", _
SubAddress:="'" & Worksheets(i).Name & "'!K1", _
TextToDisplay:=Worksheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=Cells(derligne, 2), Address:="", _
SubAddress:="'" & Worksheets(i).Name & "'!H17", _
TextToDisplay:=Worksheets(i).Name
End If
If Sheets(i).Range("A23").Value Like "OBJET :" Then
Sheets("2014").Cells(derligne, j).Value = Sheets(i).Range(VarLENNOX(j - 1)).Value 'Range(Var(j - 1)) 'renvoie l'adresse de E1 puis E2 etc .. Cells(derligne, j) renvoie l'adresse de la cellule située sur la derniere ligne vide de synthese et j incremente la colonne

ActiveSheet.Hyperlinks.Add Anchor:=Cells(derligne, 1), Address:="", _
SubAddress:="'" & Worksheets(i).Name & "'!K1", _
TextToDisplay:=Worksheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=Cells(derligne, 2), Address:="", _
SubAddress:="'" & Worksheets(i).Name & "'!H17", _
TextToDisplay:=Worksheets(i).Name
End If
Next j
End If
Next i
Merci de votre aide
 
Dernière édition:

andrekn13

XLDnaute Occasionnel
Re : Arrêt d'un boucle "for", trop longue en pointant souris sur la barres de tâche

si j'enlève :
Application.ScreenUpdating = False
chaque cellule se remplis laborieusement et si je recommence en pointant la souris simplement sur la barre de tâche je vois les lignes défiler en un rien de temps !
Quel rapport entre ces deux actions ?
merci d'avance
 

Discussions similaires

Réponses
7
Affichages
337
Réponses
21
Affichages
1 K

Statistiques des forums

Discussions
312 362
Messages
2 087 638
Membres
103 622
dernier inscrit
Desertika