Récupération de macros à partir de classeurs corrompus (Microsoft Excel)
Devarajan s’est heurté à une situation où un classeur a été corrompu, mais il a voulu récupérer le module de macro associé au classeur. (Les macros représentaient un peu de temps de développement.)
Devarajan s’est demandé comment le module pouvait être récupéré.
La réponse dépend, en grande partie, du niveau de corruption du classeur et de l’emplacement de la corruption dans le classeur. Beaucoup a été écrit sur la façon de récupérer des classeurs corrompus; les ressources suivantes seront intéressantes à cet égard:
http://support.microsoft.com/kb/142117 (for Excel 97) http://support.microsoft.com/kb/179871 (for Excel 2000) http://support.microsoft.com/kb/820741 (for Excel 2002 and 2003) http://www.jkp-ads.com/Articles/CorruptFiles.asp
La plupart de ces pages se réfèrent spécifiquement à la récupération de données, et non à la récupération des macros dans un module associé à un classeur. (Il est intéressant de noter que la base de connaissances Microsoft ne contient aucun article sur la récupération de données à partir d’un classeur Excel 2007 corrompu. Peut-être que l’un viendra avec le temps.) Une chose que vous pourriez essayer pour obtenir vos macros est la suivante:
-
Ouvrez Excel, mais pas le classeur de problème.
-
Réglez le mode de calcul sur manuel (Outils | Options | Onglet Calcul | Manuel).
-
Définissez le paramètre de sécurité sur Élevé (Outils | Macro | Sécurité | Élevé).
-
Ouvrez le classeur gênant. S’il s’ouvre correctement, vous devriez voir un avis indiquant que les macros ont été désactivées. (Si le classeur ne s’ouvre pas, vous pouvez aussi bien fermer Excel; cette série d’étapes ne fonctionnera pas.)
-
Appuyez sur Alt + F11 pour afficher l’éditeur VBA.
-
Dans l’Explorateur de projets, recherchez le module que vous souhaitez enregistrer.
-
Cliquez avec le bouton droit sur le nom du module et choisissez Exporter le fichier.
-
Fournissez un nom et un emplacement où enregistrer le module.
-
Fermez l’éditeur VBA et sortez d’Excel.
-
Avec le module enregistré dans son propre fichier, vous pouvez maintenant l’importer dans un autre classeur, comme vous le souhaitez.
Une autre façon de tenter une récupération consiste à utiliser OpenOffice, une alternative gratuite à Microsoft Office. Le programme de feuille de calcul dans OpenOffice ouvrira les fichiers Excel, et il n’est pas aussi sensible à certains problèmes de corruption.
Si cela ne fonctionne toujours pas, essayez d’utiliser un outil de manipulation de fichiers de bas niveau qui vous permet de lire des fichiers secteur par secteur à partir d’un disque, puis vous permet de voir les informations dans chaque secteur. Avec la plupart des types de fichiers, cela ne sera pas très utile. En fait, cela ne vous aiderait pas à récupérer des données à partir d’un classeur Excel. Cependant, la récupération de macros est une autre histoire. Ils sont stockés dans le classeur en texte ASCII brut, vous devez donc être en mesure de reconnaître le code de macro, puis de le copier à partir de l’outil de disque.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (2399) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:
lien: / excelribbon-Recovering_Macros_from_Corrupted_Workbooks [Récupération de macros à partir de classeurs corrompus]
.