Formule sous macro

hoerwind

XLDnaute Barbatruc
Bonjour à vous tous,


Un fichier modèle de quelques 20 Mo comprenant une dizaine de feuilles, chacune variant de 10 à 100 colonnes sur 50 à 3000 lignes, le tout avec quelques 100 000 formules, chacune étant répétitive de 50 à 3000 fois.
Le calcul est lent, acceptable, mais énervant.
Puisqu'il s'agit d'un fichier modèle, dans la plupart des cas, seules 30 à 50% des formules sont effectivement nécessaires.
Nommer ces formules apporte une légère amélioration, mais pas suffisante.

D'où l'idée d'enregistrer ces formules sous différentes macros.
J'ai vu la semaine dernière, sur ce site, une macro exemple de Job, qui pourrait me convenir, mais les formules étaient écrites en anglais.

Mes questions :
1. Est-ce qu'enregistrer les formules sous des macros accélérera la vitesse de calcul ?
2. Il y a-t-il moyen d'enregistrer des formules écrites en langue française ?
3. Il y a-t-il moyen d'écrire une seule macro modèle, dans laquelle il suffirait de modifier la formule à appliquer ainsi que la plage de cellules à laquelle elle s'applique ?

J'aimerai connaître votre avis, et votre expérience quant cette problématique.
Merci d'avance pour vos conseils.
 

Staple1600

XLDnaute Barbatruc
Re : Formule sous macro

Bonjour Hoerwind


Un petit bout de fichier, histoire d'avoir de quoi tester, stp ?

Merci

Pour utiliser des formules en français
FormulaLocal

Personnellement en utilisant Evaluate et/ou Worksheet.Function, je renverrai le résultat calculé des formules plutôt que d'insérer les formules dans les cellules.
 

job75

XLDnaute Barbatruc
Re : Formule sous macro

Bonjour hoerwind, Staple,

@ hoerwind

1. L'intérêt d'une macro pour entrer les formules c'est que c'est plus rapide que de les entrer manuellement.

2. FormulaLocal comme l'a dit Staple, mais la macro ne fonctionnera que sur des ordis de même langue.

3. On peut toujour faire une macro modèle, et on peut même l'appeler en lui envoyant les paramètres que l'on veut modifier.

@ Staple

[/B]Personnellement en utilisant Evaluate et/ou Worksheet.Function, je renverrai le résultat calculé des formules plutôt que d'insérer les formules dans les cellules.

Oui, mais cela suppose qu'on traite les cellules une par une par une boucle.

Pour une grande plage, ce code sera bien plus rapide :

Code:
plage.Formula = "=XXXXXXXXXXXXXX"
plage = plage.Value 'copie les valeurs

A+
 

hoerwind

XLDnaute Barbatruc
Re : Formule sous macro

Salut Staple,

Merci du retour.

Pas facile ce que tu me demandes, pas moyen de t'envoyer un extrait, toutes les feuilles étant liées en entre-elles.
Je vais donc établir cet exemple en remplaçant certaines liaisons par des constantes et en supprimant les lignes superflues..
 

Staple1600

XLDnaute Barbatruc
Re : Formule sous macro

Re job75

Je disais cela dans l'Absolu

C'est pour cela qu'avec un petit fichier synthétique , nous pourrions basculer dans le concret ;)

PS: Un souvenir soudain m'assaille , je vais fouiller dans le grenier d'XLD
et je reviens vers vous.

Voila à quoi je songeais
Réaliser quelque chose de similaire au module de classe de L. Volpi
(que vous trouverez dans ce fil)

EDITION: j'avais aussi jadis cherché à stocker des formules dans un Array
voir ce fil
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 226
Messages
2 086 414
Membres
103 204
dernier inscrit
alaa20dine01