Bonjour MANTE, chris,
Tu as écrit :
« mais impossible d’enregistrer le fichier EXCEL sous xlsm prenant en charge les macros »
et : « je ne reçois que des messages d'erreur dès que je veux enregistrer en xlsm ».
Je ne comprends vraiment pas ces 2 phrases, car le fichier que tu as joint est pourtant
bien un fichier .xlsm ; c'est donc la preuve que tu as pu enregistrer ton fichier en tant
que "Classeur Excel (prenant en charge les macros)" ; serait-ce qu'un miracle se serait
produit ? si oui, va vite à l'église pour brûler un cierge en l'honneur de cet événement
extraordinaire, et prépare-toi à ce que ta jolie maison devienne un lieu de pèlerinage
aussi célèbre que celui de Lourdes.
-------------------------------------------------------------------------------------------------
chris a écrit :
« Pas de problème d'enregistrement, mais un temps de traitement
important vu la taille de la plage et le contenu. »
Je confirme pareil : je peux enregistrer sans aucun problème, et le temps d'exécution
de la macro est vraiment très, très long ! (c'est normal, vu la taille de la plage à
traiter, et les nombreuses occurrences du mot "liberté" à colorer en vert)
-------------------------------------------------------------------------------------------------
Je te retourne ci-dessous ton fichier modifié,
avec la macro optimisée.
* fais Ctrl e : ça lance la macro libertéVert() ; ça, c'est très facile à faire ; y'a aucun
problème de c'côté-là !
* maintenant, voici le plus dur à faire : tu vas devoir patienter un bon moment,
disons, montre en main, environ 2 bonnes grosses minutes ; tu crois que ça
ira quand même ? alors pendant ce long temps d'attente, je te propose de
regarder le joli texte affiché dans la barre de titre, juste à droite du nom de
fichier : "(Ne répond pas)" ; bon, en fait, t'inquiète pas : Excel n'est pas bloqué,
et continue bien gentiment à exécuter la macro, en arrière-plan ; si tu es trop
las d'attendre, profites-en pour aller boire un café et papoter un peu avec tes
collègues de bureau,
mais essaie quand même de revenir avant que 2 longues
minutes ne se soient écoulées ; sinon, ton chef risque de râler après toi, et je ne
voudrais surtout pas que tu sois renvoyé à cause de moi ! ... comment ? c'est
toi le chef de la boîte ? ah, ben ok : tu pourras te virer toi-même si tu traînes
trop longtemps près de la machine à café.
... environ 2 bonnes grosses minutes plus tard :
ah, ben oui, hein ? fallait bien ce temps-là pour traiter la plage
D2:BL231 !
*
détection automatique de la
dernière ligne utilisée, selon la colonne
A
*
détection automatique de la
dernière colonne utilisée, selon la ligne
1
(tu n'as donc pas besoin d'indiquer, dans le code VBA, quelle est la plage à traiter)
Les temps ne sont pas toujours les mêmes ; par exemple, j'ai eu 1,9 mn et 1,85 mn ;
mais bon, entre amis, on ne va pas chipoter pour quelques poignées de secondes
en plus ou en moins, n'est-ce pas ?
Et puis, je dois t'avouer quelque chose : j'ai seulement Windows 7 et Excel 2007 ;
alors que toi, tu as Windows 10 et Excel 2019 ; en plus, ma RAM est de seulement
8 Go, et j'ai un vieux processeur poussif Intel Core i5-3450 à 3.10 GHz.
Alors il se pourrait que ce soit un peu plus rapide sur ton PC ; quel dommage, tout de
même ! tu auras moins de temps pour flirter avec la belle et séduisante secrétaire de
l'étage ! faudra faire avec... (non, pas ces choses-là, hein ? censuré !)
soan