Macro erronée Mémoire Insuffisante
Bonjour,
Pour une association dont je suis membre et pour laquelle j'assure un suivi,
je rencontre un problème sur le fichier joint au niveau de la macro "mémoire insuffisante" si
je veux ajouter une journée. N'étant pas à l'origine de la mise en place et création de la macro,
je suis bien ennuyé, si vous pouvez m'aider.
Je vous en remercie.
Bonne journée
Ah oui non mais ce n'est pas surprenant, le problème ne vient pas de VBA mais directement des limitations d'XL… Avez-vous jeté un oeil à l'horreur de formule que vous avez dans les colonnes C et D de la feuille Journées ????
Vous atteignez tout simplement la limite de caractères possibles dans une formule…
Le problème réside dans la formulation de votre calcul. De ce que j'ai compris, la formule vérifie, pour chaque partie de la ligne, si il y a une croix, et si oui ajoute la valeur à droite à une somme…
C'est ON NE PEUT PLUS INEFFICACE. Il faut absolument revoir vos formules, ce calcul doit être possible avec un simple SOMME voir SOMME.SI… nul besoin de VBA !!!
Personnellement je n'ai aucune idée de ce que vous calculez, ce qu'est le PP, le PC etc. Mais revoyez cela, c'est n'importe quoi et il n'y a même pas besoin de VBA pour mettre à jour des formules correctes.
Bonjour Bljp et Saboh12617,
Je confirme le diagnostic de Saboh12617 : le vba ajoute, à chaque fois que l'on augmente d'une journée, un complément dans les cellules des colonnes C et D et elles sont arrivées à saturation pour Excel.
Si j'ai bien compris, l'initiateur de cette application n'est plus disponible pour adapter le classeur.
Donc il y a, à mon avis, 2 solutions possibles :
1 la plus simple pour ne manipuler que le moins possible à l'application :
On limite le nombre de journée au maximum accepter par Excel (+- 50 journées)
on crée un nouveau classeur et on supprime les 49 dernières journées pour repartir avec un classeur vierge
Pour cela il faut vérifier la cohésion de l'application avec la pratique. Je ne connais pas suffisamment les tenants et aboutissants des buts recherchés pour savoir si l'on peut arbitrairement arrêter à 50 et repartir de zéro. Je pense à des demandes de comparaisons ou de totaux etc...
2 Autre solution : plutôt que faire les calculs avec des formules dans le tableur, on effectue les calculs dans le VBA. C'est naturellement plus compliqué à réaliser et cela a l'inconvénient que les calculs ne se feront plus automatiquement : il faudra déclencher le VBA chaque fois que tu feras des modifications dans les données.
Par contre, cela allégera fortement le tableur car, effectivement, ce n'est pas bon d'élaborer des formules aussi longues mais je comprends comment le créateur en est arrivé là car, comme a été construit le tableau, il est difficile de créer une formule qui réalise les tests demandés sans faire tous ces tests.
Je veux bien y passer du temps mais je tiens d'abord à savoir ton choix :
Dans le cas 1 : j'ajouterai une limite qui, quand tu demandera d'ajouter une journée, te dira que tu es arrivé à saturation et te proposera de créer un nouveau classeur pour repartir à 0.
Dans le cas 2 : je remplacerai les formules par un vba qui effectuera les calculs demandés et supprimerai les formules dans les colonnes C et D
A bientôt
Chris
Bonsoir,
Tout d'abord merci d'avoir passé du temps à regarder ce sujet,
et merci de vos réponses, je vais voir comment je peux m'en sortir avec
vos solutions proposées.
Je me permettrai de revenir vers vous si je "plante"
Cordialement.
Bonne soirée