Boucles imbriquées et temps d'exécution (suite)
Bonjour à tous,
Je reviens à la charge, suite de https://forum.excel-pratique.com/excel/boucles-imbriquees-et-temps-d-execution-174160
Le temps d'exécution pour ces boucles imbriquées est de 46 secondes pour 5 000 lignes.
Une idée de code pour améliorer cette vitesse ?
Sub Exemple()
t = Timer
Dim tableau0
Dim tableau1
Dim tableau2(1 To 200, 1 To 100)
Dim derniereLigne As Integer
Dim I As Integer
With Sheets("Exercice")
derniereLigne = .Cells(Rows.Count, 1).End(xlUp).Row
tableau0 = .Range("A1:B" & derniereLigne).Value
tableau1 = tableau0
ReDim Preserve tableau1(1 To UBound(tableau0), 1 To 202)
For K = 2 To 200
For j = K - 1 To UBound(tableau1)
Somme = 0
For I = j + 2 - K To j
Somme = Somme + tableau1(I, 1)
tableau1(j, K + 2) = Somme / K
Next
Next
Next
For K = 1 To 200
For L = 1 To 100
For I = 2 To UBound(tableau1)
For j = K To K
If tableau1(I, j + 2) > tableau1(I - 1, j + 2) And tableau1(I, 2) > L Then
tableau1(I, 3) = 1
End If
a = 0
If tableau1(I, 3) = 1 Then
a = a + tableau1(I, 3)
End If
Next
Next
tableau2(K, L) = a
Next
Next
.Range("S1").Resize(UBound(tableau2, 1), UBound(tableau2, 2)).Value = tableau2
End With
MsgBox Timer - t
End Sub
Edit modo : merci de préciser le sujet d'origine
Pour info, ni le "Application.ScreenUpdating", ni le "Application.Calculation" n'apportent de gain de temps.
bonjour,
tout se passe en mémoire, donc ces "Application.ScreenUpdating" et "Application.Calculation" sont hors question.
3.500.000 actions par seconde, c'est énorme.
Jusqu'au moment qu'on se réalise que le problème se trouve devant l'écran au lieu que dans l'ordinateur, vos questions n'ont pas de sens. C'est quoi que vous voulez calculer, vous n'envoyez pas une fusée sur la lune
Bonjour BSAlv,
Je n'ai aucune envie de partager mon projet personnel sur la place publique. J'imagine que je ne dois pas être le seul utilisateur de ce forum dans ce cas-là.
En effet, je ne suis pas en train de construire un réacteur nucléaire. Mais pas besoin de travailler dans la physique appliquée pour avoir un besoin de ressource impressionnant de calcul.
En ce moment, ce qu'il y a devant mon écran, c'est moi. LE problème.
Pourtant, j'ose espérer avoir une bonne appréhension des tâches que j'ai à résoudre, mais c'est toujours difficile d'en être certain. J'élabore mon code depuis un an, ce qui ne veut rien dire ; on peut travailler sur un projet pendant des années et être complètement à l'ouest. Ça fait partie du jeu.
En tout cas merci pour vos efforts.
Cordialement.
Bonjour
@BsALv, vous me rassurez, je ne suis pas le seul à me poser des questions
@Fab7627... vous voyez qu'il n'y a pas que moi
Décidément ça ne passe pas et encore moins...
quand je m'aperçois que vous ne respectez pas la charte du forum concernant le cross posting
Je clôture, prenez votre décision...