automatiser le calcul d'une fonction définie par l'utilisateur

Pierre1981

XLDnaute Nouveau
Bonjour,

Je travaille actuellement sur un fichier composé de multiples feuillets (60 exactement) et dont le dernier sert à consolider les 59 autres.

Je suis obligé d'utiliser une fonction crée par moi même pour effectuer ces calculs.

la fonction marche correctement, le problème vient du fait qu'elle ne s'actualise pas avec le changement des données des autres feuilles.

Je sais qu'il y a 2 solutions existantes :

- application.volatile : mais il en est hors de question vu le nombre de formule contenu sur le dernier tableau (une bonne 100aine et donc un temps de chargement immonde ^^)

- passer de "faux" paramètres à ma fonction afin qu'elle se recalcule à chaque fois qu'une valeur change. Ma préférence va pour cette solution, nettement moins gourmande en ressources.
Le problème est que si je suis capable de le faire pour une fonction agissant sur une feuille, je suis incapable de le faire pour une fonction agissant sur un classeur entier.
je mets un exemple pour que ce soit plus clair :
- sur une feuille :
=formacoll(P29:p38;$N$29:$N$38;"P";39) ici cela fonctionne. Les 2 premiers paramètres sont là uniquement pour indiquer à la fonction ou sont prises les données.

- sur un classeur :
=nbparticipassocoll("P";28) ici cela ne fonctionne plus. Ce que je souhaiterais faire c'est que cette fonction vérifie toutes les colonnes P des 59 feuilles précédentes et se mette à jour en cas de changement.

Je pense que c'est un peu compliqué à réaliser. Merci d'avance de vos suggestions :)

Pierre
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : automatiser le calcul d'une fonction définie par l'utilisateur

Bonjour Pierre,
Je pense que c'est un peu compliqué à réaliser. Merci d'avance de vos suggestions :)
et c'est encore plus compliqué à comprendre sans voir le fichier et sans savoir ce que fait la fonction

Pourrais-tu joindre ton fichier (pas besoin de toutes les feuilles), avec 2 ou 3 onglets de données et le dernier (Récap)

à+
Philippe
 

Pierre1981

XLDnaute Nouveau
Re : automatiser le calcul d'une fonction définie par l'utilisateur

Voilà le lien du fichier :
Free - Envoyez vos documents

le mot de passe pour toutes les protections (feuille et vba) est : mnsecret
pour voir toutes les feuilles il faut passer par le menu choisir siège (mdp : Chef)
et ensuite utiliser le premier choix concernant l'association (ça affichera alors toutes les feuilles)
pour l'instant je n'ai implanté les formules que sur la feuille association (1).

Merci d'avance pour votre réponse.

Pierre
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : automatiser le calcul d'une fonction définie par l'utilisateur

Re,

Désolé Pierre, je me suis juré de ne plus jamais cliquer sur un lien Free (ça m'a un jour amené des saloperies infectées )

ce forum offre la possibilité de joindre des fichiers
il suffit de cliquer sur "Alller en mode avancé" et un peu plus bas sur "Gérer les pièces jointes"

à+
Philippe
 

Pierre1981

XLDnaute Nouveau
Re : automatiser le calcul d'une fonction définie par l'utilisateur

Je ne peux malheureusement pas le faire, sans reprendre l'intégralité du fichier. Ce qui me demanderait un temps énorme.

Je ne peux que le déposer sur un service de ce style vu que mon fichier est trop volumineux (3Mo). :/
 

Gelinotte

XLDnaute Accro
Re : automatiser le calcul d'une fonction définie par l'utilisateur

Bonjour,

Je n'ai sûrement pas bien compris le problème, car sur ma machine, à part que c'est passablement lent (I7 avec 16 go ram), ça semble fonctionner.

- sur un classeur :
=nbparticipassocoll("P";28) ici cela ne fonctionne plus. Ce que je souhaiterais faire c'est que cette fonction vérifie toutes les colonnes P des 59 feuilles précédentes et se mette à jour en cas de changement.

Si j'insère des données sur 'ITEP Saint-Yves (1)'!P95:p104 et sur 'Siege (1)'!P95:p104 le résultat se fait bien sur Association(1).

G
 

Gelinotte

XLDnaute Accro
Re : automatiser le calcul d'une fonction définie par l'utilisateur

Bonjour,

Affirmatif! J'ai pris le temps d'ajouter des données dans toutes les sections : animation/éducation, médical, paramédical, etc dans les colonnes E à S, puis j'ai attendu que les résultats s'afficher dans les lignes : total formations individuelles, total formations collectives.

La seule bout qui ne fonctionne pas, c'est à la ligne 44 de la feuille Association(1) les cellules P à AM qui font référence à : =nbparticipassocspcoll("P";17) jusqu'à =nbparticipassocspcoll("AM";17) ... Pourquoi la ligne 17 de chaque feuille traitée ???

Sinon, tout est beau.

Est-il possible que ce ne soit que la lourdeur du calcul qui soit le problème ??


G
 
Dernière édition:

Pierre1981

XLDnaute Nouveau
Re : automatiser le calcul d'une fonction définie par l'utilisateur

Oui je sais pour la lourdeur. J'ai repris le fichier et essayer de l'améliorer. Mais bon ce n'est pas simple :)

et oui la ligne 44 ne fonctionne pas. La fonction que j'ai créée pour cette ligne provoque une erreur circulaire sur mon pc. Et donc ça ne fonctionne pas du tout, du coup j'ai mis le code en commentaire pour que l'erreur disparaisse :)

Bon en tout cas il semblerait que ce soit mon pc qui ait des problèmes. C'est bizarre tout de même.
 

Discussions similaires

Statistiques des forums

Discussions
312 412
Messages
2 088 196
Membres
103 763
dernier inscrit
p.michaux