Bonjour,

voila mon problème :

j'ai une classeur M qui contient des feuilles de calcul, et je dois insérer des feuilles de données dans ce classeur. Ce traitement vos pour un peu plus de milles itérations.

En fait je copie et renome mon classeur M, je supprime les feuilles de données qui m'on servi à le contruire et je recopie les bonnes feuilles de données.

Hélas, les formules ont une erreur de REF puis que les feuilles ont été supprimer.

Il faut savoir que ma technique précèdente était recopier cellule par cellule les nouvelles données, mais j'en ai pour 1 heure de traitement au mieux 40 minutes. Alors qu'avec la technique de copie de feuille dans les classeurs cela ne prend que 20 minutes.

J'avais eu espoir qu'en annulant le calcul automatique il ne chercherait pas à évaluer mes formules lors de la suppresion des feuilles de données, mais c'est raté, à moins que j'ai fait une erreur.

Voici le code :
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
16
17
18
19
20
21
22
23
 
 ' on désactive le calcul automatique des classeurs
 XL.Calculation = xlCalculationManual
 ' on ne calcule pas avant de sauvegarder
  XL.CalculateBeforeSave = False
 
' ouverture du fichier modèle qui a été renommé 
' updatelinks = 0 pour aucune mise à jour des références 
Set classeur = XL.Workbooks.Open(fichier, 0)
 
' ... on supprime les feuilles de données dans classeur .... 
....
 
' ouverture du classeur contenant 1 feuille de donée
XL.Workbooks.OpenText FileName:=NomFichierSource ....
 
Set p_classeur = XL.Workbooks(2)
 
' on copies les donnnées dans le classeur contenant les feuilles de calculs
p_classeur.Sheets(1).Copy After:=classeur.Sheets(classeur.Sheets.Count)
classeur.Sheets(classeur.Sheets.Count).Name = "D_" & nomRequete
p_classeur.Close
....
Si jamais vous avez une idée sur le moyens de bloquer l'évalutation des formule lors de la suppresion de feuilles ...

Merci ...