Bonjour Antoine,
Tu a écrit :
Comment voir si on est au dessus de 64 ?
C'est justement le message « procedure too large » qui indique que la macro est au-dessus de 64 Ko ; s'il y a un autre moyen, je ne vois pas lequel ; mais perso, j'ai jamais ce message car je fais une programmation modulaire, pour laquelle chaque module tient de façon naturelle dans la limite des 64 Ko.
Même s'il y a 700 personnes × 300 codes (donc 700 lignes × 300 colonnes), je pense comme toi que quelques sommes et juste des fonctions NB et SI devraient passer ; aussi, je crois que le problème doit plutôt être créé par la mise en page, mais il faudrait en savoir plus là-dessus : quel est le genre de mise en page que tu fais ? pour cela, le plus simple serait d'examiner ce qu'a enregistré la macro pour ton fichier initial, mais sans fichier, évidemment...
On pourrait alors à la fois : a) optimiser la macro (réduire le code et l'écrire mieux que ce qu'a fait l'enregistrement auto) ; b) voir quelle partie du code VBA est éventuellement susceptible d'empêcher l'exécution de cette macro pour un autre classeur Excel, et l'adapter alors en conséquence (mais ça peut aussi venir seulement des données de la feuille de calcul, voir ci-dessous).
Le fait que la même macro marche dans ton fichier initial et pas dans un autre peut avoir de multiples causes ; exemples : feuille protégée sur l'un et pas sur l'autre, structure des données pas aussi identique que tu le pensais, format des données qui paraît identique et ne l'est pas (notamment dates "texte" sur l'un et vraies dates sur l'autre, dates avec jour et mois inversés), espaces invisibles en trop dans des données, ou par exemple à la fin d'un nom de feuille...
L'enregistrement auto d'une macro peut bien dépanner dans de nombreux cas, mais ce n'est pas la panacée : ça écrit souvent du code supplémentaire inutile en plus, qu'on peut donc effacer ; l'« intelligence » limitée de l'enregistrement auto fait qu'il écrit un code général, car il ne peut pas déterminer la logique d'ensemble qui mène à la finalité du résultat qu'on cherche à obtenir ; de plus, il met souvent des références relatives par rapport à la position de la cellule active, donc le traitement n'est alors plus valable si au moment de l'exécution la cellule active est différente de celle de départ au démarrage de l'enregistrement auto.
Si tu veux envoyer ton fichier (avec toutes les données ou seulement une partie), n'oublie pas de l'anonymiser (pas d'infos confidentielles).
L'intervenant qui t'aidera ne devra pas oublier que ton ordi est un Macintosh (certaines fonctionnalités d'Excel version PC ne tournent pas dessus !).
Cordialement,
dhany