Partager via

Excel 2013 supprime les macros de mes .xlsm en prétextant qu'elles sont "corrompues" (est-ce un problème d'accents dans le code ?)

Anonyme
2020-09-29T13:28:48+00:00

Bonjour tout le monde,

est-ce que ça vous est déjà arrivé :

  • Excel plante à l'ouverture de fichiers .xlsm contenant plein de macros
  • ces macros ont été réalisés sous XL-2010 et utilisées depuis des années par 40 utilisateurs sous Office 2007, 2010, 2013, 2016, sous Win7 et Win10
  • seuls les 4 ou 5 utilisateurs les plus récents ont ce problème, ils sont sous Win10 et Office 2013 Pro (et 2 d'entre eux ont racheté un Office 2013 avec une licence et refait toute l'installation)
  • à l'ouverture de ces fichiers le message suivant apparaît "Les macros Visual Basic pour Application (VBA) de ce classeur sont corrompues et ont été supprimées. Le fichier actif contient très probablement des macros corrompues. Pour récupérer ces macros, si vous disposez d'une copie de sauvegarde de ce fichier, ouvrez cette copie."

Grâce à cette gentille plaisanterie, une bonne partie des fichiers Excel qui servent dans mon entreprise ont été amputés de leurs macros au fur et à mesure que ces 4 ou 5 collègues ouvraient des fichiers (parce que, bien entendu, lorsqu'ils voient une boîte de dialogue apparaître, ils s'empressent de cliquer sur "la petite croix en haut à droite" pour la fermer sans même essayer de comprendre la conséquence).

Chez au moins l'un de ces collègues, j'ai pu faire fonctionner un fichier avec une simple macro affichant un message avec l'heure, mais si le nom de cette macro contient un caractère accentué, là, ça plante avec un message légèrement différent mais qui revient au même (Excel a rencontré du contenu illisible, on essaye de le récupérer... ah non, désolé, c'est pas récupérable, le fichier rapport xml indique que ça a supprimé tout le projet en VBA).

Ce qui me fait penser qu'il y a un problème de caractères (non UTF-8 ?), c'est que dans l'éditeur VB de leur Excel 2013, les "é" sont remplacés par des "é" dans le mot "Général" situé dans la liste déroulante supérieure gauche du VBE. Si je fais une macro une macro dont le nom ne comporte pas d'accent, elle n'est pas supprimée, elle fonctionne, mais si je lui fait afficher une MsgBox avec du texte accentué, les caractères "é" ou "ç" sont remplacés par un petit losange noir avec un point d'interrogation blanc dedans…

J'ai vérifié la langue par défaut de Windows (Français [France]) et la langue par défaut dans les options d'Excel (pareil) et je me demande bien où on peut régler cette incapacité à afficher correctement les caractères accentués dans VBA...

Vous avez des idées ??

Merci d'avance des pistes que vous m'aiderez à explorer !

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

Réponse acceptée par l’auteur de la question

DanielCo 107.7K Points de réputation
2020-09-29T14:09:38+00:00

Bonjour,

Regarde dans les options régionales du panneau de contrôle si cette case n'est pas cochée :

Il me semble qu'elle met le bazar.

Daniel

Cette réponse a-t-elle été utile ?

2 personnes ont trouvé cette réponse utile.
0 commentaires Aucun commentaire

1 réponse supplémentaire

  1. Anonyme
    2020-09-29T14:41:26+00:00

    Oouuuuh yeeaaaah !!!!!

    Danse de la victoire !!

    Bravo, Daniel, tu as tous mes remerciements et mon admiration, je viens d'essayer sur un des PC incriminés et le premier fichier .xlsm ouvert qui posait problème précédemment, s'ouvre maintenant comme une fleur (tiens, je deviens poète).

    J'avoue qu'en creusant la piste de la prise en charge des langues, je suis passé il y a quelques jours dans cette boîte de dialogue et il y avait "Anglais (États-Unis)" dans la liste déroulante, alors je me suis empressé de mettre "Français (France)" en croyant avoir trouvé. Mais je n'ai pas tenté de décocher la case...

    Cela nécessite un redémarrage de Windows, mais l'effet est immédiat. Je transmets la réponse aux 4 autres collègues concernés pour qu'ils le fassent sur leur poste et j'espère bien que l'effet sera le même.

    Encore merci !

    Cédric.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire