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

Trier par : Les plus récents
  1. Roland Miller 20 Points de réputation
    2025-09-30T11:14:58.38+00:00

    Bonjour et merci pour votre réponse rapide et très claire.

    Mais je connaissais ces infos. Il y a des milliers de fichiers à convertir. Je cherche une façon de faire par VBA. On ne peut faire ceci manuellement. Ceci implique aussi plusieurs usagers qui n'ont pas la facilité d'intervenir. De plus la fonction Enregistrer sous est bloquée pour ces fichiers.

    Je connais évidemment le mot de passe du projet VBA. Ce qui est triste est de ne pas pouvoir ôter la protection du projet VBA d'un autre fichier par VBA. Cela permettrait de supprimer les modules du projet afin de mettre à jour le fichier et d'ensuite effectuer le Enregistrer sous ce qui laisserait le fichier d'origine intacte aussi. Car nous gérons des mises à jour des fichiers.

    N'y aurait-il pas un moyen comme de modifier une clé du registre ou quelque chose du genre ... pa VBA?

    J'ai vu suite à des recherches que d'autres ont aussi eu cette problématique. Cela ne facilite pas le passage du 32 bits au 64 bits.

    Merci à l'avance.

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

    0 commentaires Aucun commentaire

  2. Vivian-HT 17,900 Points de réputation Personnel externe Microsoft Modérateur
    2025-09-30T00:11:51.7233333+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,

    Merci d'avoir posé votre question sur le forum de questions-réponses Microsoft.

    Le problème que vous rencontrez est dû au fait que le code VBA de vos fichiers .xlsm utilise des déclarations API 32 bits, incompatibles avec Office 64 bits. À l'ouverture du fichier, Excel tente de compiler le code et rencontre des erreurs.

    Si vous n'avez pas besoin de macros :

    1/ Ouvrez le fichier en désactivant les macros (cliquez sur « Désactiver les macros » lorsque vous y êtes invité).

    2/ Enregistrez le fichier au format Classeur Excel (.xlsx) via Fichier > Enregistrer sous.

    3/ Cette opération supprime toutes les macros et empêche leur exécution.

    Si vous avez besoin de macros :

    1/ Mettez à jour le code VBA pour la compatibilité 64 bits en :

    2/ Ajoutant le mot-clé PtrSafe aux déclarations API.

    3/ Remplacez Long par LongPtr pour les arguments pointeurs.

    Pour plus d'informations, veuillez consulter le document officiel de Microsoft ici :Instruction declare

    Exemple:

    #If VBA7 Then
        Declare PtrSafe Function ...
    #Else
        Declare Function ...
    #End If
    

    Nous espérons que ces informations vous ont été utiles. Si vous avez essayé ces méthodes et que le problème persiste, ou si les étapes ci-dessus ne le résolvent pas, n'hésitez pas à nous contacter. Nous examinerons le problème ensemble.

    Veuillez comprendre que notre première réponse ne résout pas toujours le problème immédiatement. Cependant, avec votre aide et des informations plus détaillées, nous pourrons trouver une solution ensemble.

    Si j'ai mal compris une partie de votre demande, n'hésitez pas à me recontacter afin que nous puissions clarifier et vous aider davantage.

    J'attends votre réponse avec impatience.


    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

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.