Bonjour à tous.
Bon voilà j'ai fait une procédure qui fonctionne très bien lorsque j'ai quelques ligne dans un fichier excel. Malheureusement je ne suis pas un bon codeur donc quand j'utilise ma procédure sur un document qui contient 10 000 ligne j'en ai pour la nuit...
Donc j'aimerais savoir si vous voyez un moyen de simplifier(améliorer, accélérer...), le code suivant:Pour vous mettre un peu dans le context, dans la colonne M de mon fichier excel j'ai une formule du genre =(EXP(L11520/$P$1)-1)*I11520
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 For numRow = 2 To LastRow Do Until Range("M" & CStr(numRow)) < Range("H" & CStr(numRow)) Or ageMa < 0 ageMa = Sheets("requete").Range("L" & CStr(numRow)) ageMa = ageMa - 10 Range("L" & CStr(numRow)) = ageMa Loop ageMa = ageMa + 10 If ageMa < 0 Then GoTo finloop Do While Range("M" & CStr(numRow)) > Range("H" & CStr(numRow)) ageMa = ageMa - 1 Range("L" & CStr(numRow)) = ageMa Loop finloop: Next numRow
Dans la colonne L j'ai une valeur obtenue par un calcul et je doit diminuer cette valeur jusqu'à ce que le résultat de la formule de la colonne M soit plus petit qu'une valeur cible (dans la colone H).
Pour résumer les choses:
1. Calcule ageMa (colonne L)
2. Calcule agePb (a partir de ageMa)(colonne M)
3. Si agePB > que Valeur de référence(colonne H), enleve 10 de ageMa
3.5. retour étape 2
4 Rajoute 10 a ageMa(colonneL)
5. Calcule agePb (a partir de ageMa)(colonne M)
6. Si agePB > que Valeur de référence(colonne H), enleve 1 de ageMa
6.5. retour à l'étape 5
Pour l'instant les calculs sont directement dans le fichier excel, est ce que ce serait plus rapide si je fesais les calcules dans VB?
Voilà, j'espère que c'est claire.
Merci et bonne journée :0)
Partager