Enregistrer sous un fichier fermé

Roland Miller 20 Points de réputation
2025-09-29T22:38:14.8033333+00:00

Si je pouvais effectuer un enregistrer sous d'un fichier Excel mais qui est fermé cela me serait bien utile.

Mon besoin est de convertir un fichier en format .xlsm en format .xlsx pour empêcher les macros de s'exécuter à l'ouverture.

C'est que j'ai des fichiers avec du code pour API compatible qu'avec Office 32 bits. Si je suis avec Office 64 bits ... je ne peux les ouvrir sans obtenir un message d'erreur de compilation.

Est-il possible de faire ceci?

Ou auriez-vous une autre solution?

Merci à l'avance.

Microsoft 365 et Office | Excel | Pour le business | Autres
0 commentaires Aucun commentaire

7 réponses

  1. Vivian-HT 17,900 Points de réputation Personnel externe Microsoft Modérateur
    2025-10-01T05:31:39.83+00:00

    Cette réponse a été traduite automatiquement. Par conséquent, elle peut contenir des erreurs grammaticales ou des mots étranges.

    Bonjour @Roland Miller,

    J'apprécie sincèrement votre remarque importante concernant la conversion de fichiers XLSM en XLSX pour éviter les macros, et je comprends parfaitement la gêne occasionnée par une telle limitation.

    Je souhaite donc résumer brièvement ce message afin que les autres membres du forum puissent facilement y trouver des informations utiles :

    Description du problème

    • Problème : Des milliers de classeurs Excel (.xlsm) contiennent du code VBA qui appelle des API Windows 32 bits. Sur Office 64 bits, ces déclarations échouent à la compilation à l'ouverture, ce qui bloque l'utilisation et l'automatisation en aval.
    • Contraintes opérationnelles :
      • La conversion manuelle n'est pas réalisable (volume et nombreux utilisateurs finaux).
      • L'option Enregistrer sous de certains fichiers est bloquée par le code/l'interface utilisateur du classeur.
      • Une partie des fichiers se trouve sur OneDrive, où les verrous de co-création/synchronisation provoquent des erreurs d'enregistrement/enregistrement sous.
      • Bien que le mot de passe du projet VBA soit connu, la suppression programmatique de la protection d'un autre classeur n'est pas prise en charge par le modèle objet Excel/VBE.
      • Aucun commutateur de registre n'est pris en charge pour permettre la compilation du code API 32 bits sous Office 64 bits ou pour contourner la protection VBE.

    Solution terminée (lors du dépannage)

    • L'étape de fermeture et de réouverture a été confirmée et validée : après avoir enregistré le fichier au format .xlsx, le classeur doit être fermé et la copie neutralisée rouverte avant de poursuivre, afin d'éviter tout événement ou contexte de code persistant.

    Exemples renforcés fournis pour VBA et PowerShell + Excel COM : désactivation forcée des macros (AutomationSecurity = ForceDisable),

    ouverture en lecture seule sans mise à jour des liens,

    enregistrement au format .xlsx (standard ou strict),

    fermeture du classeur avant toute action ultérieure,

    gestion sécurisée de OneDrive : sauvegarde locale, puis copie dans OneDrive après fermeture (avec un bref délai d'attente avant nouvelle tentative pour les verrous de fichiers).

    Solution actuelle :

    • Fermer le classeur

    Ouvrir la copie neutralisée au format .xlsx.

    Vous pouvez toujours le faire dans la même macro en ajoutant des instructions pour la fermer.

    Ensuite, ouvrir l'autre.

    Par exemple :

    Sub OpeningWorkbook()
    
    Application.EnableEvents = False
    
    Workbooks.Open FileName:="C:\Users\aliboron\Desktop" & "Workbook2.xlsm"
    
    Application.EnableEvents = True
    
    Application.DisplayAlerts = False
    
    ActiveWorkbook.SaveAs FileName:="Classeur2.xlsx", FileFormat:=xlOpenXMLStrictWorkbook
    
    ActiveWorkbook.Close
    
    Workbooks.Open FileName:="C:\Users\aliboron\Desktop" & "Classeur2.xlsx"
    
    Application.DisplayAlerts = True
    
    End Sub
    
    

    Mise à jour actuelle :

    Bien que nous n’ayons pas encore de calendrier précis pour une correction ou une amélioration, ce problème a été signalé par plusieurs utilisateurs. Si possible, plus l’équipe recevra de commentaires et de préoccupations, plus il sera visible dans une future mise à jour.

    Si des mises à jour ou des annonces sont publiées concernant cette fonctionnalité, je ne manquerai pas de vous les communiquer dès que possible.

    Remarque : Soyez assuré que vous n’êtes pas seul. Je continuerai de suivre ce problème et vous informerai de toute nouvelle mise à jour dès que possible.

    Je vous remercie sincèrement de votre patience et de votre compréhension. Veuillez noter qu’en tant que modérateurs du forum, nous ne participons pas aux décisions de conception du produit et n’avons pas directement accès à la feuille de route de développement.

    En attendant, si vous constatez que mes réponses apportent des informations utiles, veuillez les accepter comme réponse et voter pour elles via le compte qui a posé cette question. Une fois marquée, la réponse sera automatiquement épinglée en haut de la page. Comme d'autres utilisateurs recherchent également des informations dans cette communauté, votre précieux vote aidera certainement les autres utilisateurs ayant des requêtes similaires à trouver plus rapidement la chaîne appropriée et des informations utiles.

    Si vous avez d'autres questions ou besoin de précisions, n'hésitez pas à me contacter. Je suis à votre écoute.


    Si ma réponse vous est utile, veuillez cliquer sur « Accepter la réponse » et voter pour elle. Si vous avez d'autres questions concernant cette réponse, cliquez sur « Commenter ».

    Remarque : Veuillez suivre les étapes décrites dans notre documentation pour activer les notifications par e-mail afin de recevoir la notification associée à ce fil de discussion.

    Accepter la réponse01 réponse

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

    0 commentaires Aucun commentaire

  2. Roland Miller 20 Points de réputation
    2025-09-30T22:26:09.42+00:00

    Oui je crois que je vais y aller comme ceci.

    Je vous remercie grandement.

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

    0 commentaires Aucun commentaire

Votre réponse

Les réponses peuvent être marquées comme « Acceptées » par l’auteur de la question et « Recommandées » par les modérateurs, ce qui aide les utilisateurs à savoir que la réponse a résolu le problème de l’auteur.