Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
360
Réponses
21
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…