Bonjour à tous,
Voici mon problème :
Dans un classeur, j'ai une macro qui récupère un fichier (exporté depuis notre ERP), qui l'intègre dans un onglet, puis qui parcourt chaque ligne afin de mettre à jour un autre onglet dudit classeur.
Il y a une boucle for ... next qui parcourt les lignes (environ 500-600 lignes) et qui sous certaines condition va mettre à jour des cellules dans un autre onglet :
for i = 1 to valeur
if test = vrai then
monTableau.cell(i,5) = montableau.cell(i,5) + uneAutreValeur
else
monTableau.cell(i,5) = montableau.cell(i,5) + EncoreUneAutreValeur
End if
next i
Tout cela fonctionne très bien, la macro s’exécutant en 2-3 secondes environ ........ sauf si un autre classeur SANS AUCUN LIEN AVEC LE PREMIER, mais contenant de nombreuses formules, est ouvert. Dans ce cas, la macro met entre 3 et 4 mn a s'effectuer.
J'ai fait de nombreux tests avec le débugeur et s'est bien au moment de la mise à jour de la cellule que le ralentissement se produit ... comme si après avoir changé la valeur de la cellule, il allait recalculer l'autre classeur.
Au début de la macro, on a bien un Application.Calculation = xlCalculationManual et un Application.ScreenUpdating = False, mais cela ne semble rien changer. A ce sujet : Est-ce que ces instruction marche pour tout les classeurs ouverts ? Ou uniquement pour le classeur actif ?
Si vous avez une idée pour corriger ce problème....
Merci d'avance