Note: The other languages of the website are Google-translated. Back to English

Comment forcer les utilisateurs à enregistrer en tant que classeur prenant en charge les macros?

Lorsque vous enregistrez un classeur Excel, il sera enregistré au format de fichier xlsx par défaut, et ce format de fichier supprimera les codes de macro du classeur s'il existe plusieurs codes. Pour conserver les codes, vous devez enregistrer le classeur au format Excel Macro-Enable Workbook. Comment pouvez-vous forcer les utilisateurs à enregistrer en tant que classeur prenant en charge les macros?

Forcer les utilisateurs à enregistrer en tant que classeur activé par macro avec le code VBA


flèche bleue bulle droite Forcer les utilisateurs à enregistrer en tant que classeur activé par macro avec le code VBA

Pour enregistrer le classeur en tant que classeur activé par macro par défaut, le code VBA suivant peut vous aider, procédez comme suit:

1. Maintenez le ALT + F11 clés pour ouvrir le Microsoft Visual Basic pour applications fenêtre.

2. Puis double-cliquez Ce classeur sous le VBAProjet section pour ouvrir un nouveau module vide, puis copiez et collez le code suivant dans le module:

Code VBA: force l'enregistrement du classeur en tant que classeur activé par macro par défaut:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'Updateby Extendoffice
Dim xFileName As String
If SaveAsUI <> False Then
    Cancel = True
    xFileName = Application.GetSaveAsFilename(, "Excel Macro-Enabled Workbook (*.xlsm), *.xlsm", , "Save As xlsm file")
    If xFileName <> "False" Then
      Application.EnableEvents = False
      ActiveWorkbook.SaveAs Filename:=xFileName, FileFormat:=xlOpenXMLWorkbookMacroEnabled
      Application.EnableEvents = True
    Else
      MsgBox "Action Cancelled"
      Cancel = True
      Exit Sub
    End If
End If
End Sub

doc force enregistrer sous xlsm 1

3. Ensuite, enregistrez et fermez cette fenêtre de code, à partir de maintenant, lorsque les utilisateurs enregistrent sous ce classeur, il sera enregistré sous Cahier de travail Excel avec macro-activé format par défaut comme illustré ci-dessous:

doc force enregistrer sous xlsm 2


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2021 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Fonctionnalités complètes Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine
Commentaires (11)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
C'était tellement utile et a fonctionné comme un charme merci :)
Ce commentaire a été minimisé par le modérateur sur le site
M'a sauvé beaucoup de douleur - merci beaucoup
Ce commentaire a été minimisé par le modérateur sur le site
Joli!

M'a sauvé beaucoup de maux de tête! :)
Ce commentaire a été minimisé par le modérateur sur le site
J'utilise Excel 2016 pour Mac, et lorsque j'utilise ce code VBA pour obtenir le "force save as .xlsm", j'obtiens l'erreur suivante :

Erreur d'exécution '1004':

La méthode 'GetSaveAsFilename' de l'objet '_Application' a échoué

Tout conseil que quelqu'un pourrait fournir autour de cette erreur et comment je pourrais avoir besoin d'ajuster le code pour qu'il fonctionne sur la version Mac d'Excel serait grandement apprécié!
Ce commentaire a été minimisé par le modérateur sur le site
fileformat: =52 est plus agréable que de créer un classeur compatible avec les macros. fileformat:=51 est un classeur normal.
Ce commentaire a été minimisé par le modérateur sur le site
Continuez à obtenir une ERREUR 1004.
Utilisation de Off365 2016 pour MAC. Vous avez une solution ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Jonathan,
Ce code fonctionne bien dans Windows Office, mais il n'a pas été testé sous MAC.
Vous devez rechercher un code pour travailler dans MAC.
Merci !
Ce commentaire a été minimisé par le modérateur sur le site
Toute façon d'avoir ce VBA dans un fichier de modèle
Ce commentaire a été minimisé par le modérateur sur le site
Un moyen d'avoir ce VBA dans un fichier qui est un véritable type de fichier modèle ?
Ce commentaire a été minimisé par le modérateur sur le site
Lorsque vous êtes prêt à créer le modèle, je pense que vous devez utiliser la fenêtre immédiate pour exécuter
ActiveWorkbook.SaveAs Filename :="ENTREZ VOTRE NOM DE MODÈLE", FileFormat :=xlOpenXMLTemplateMacroEnabled
Ce commentaire a été minimisé par le modérateur sur le site
Le code VBA obligeant l'utilisateur à enregistrer au format de fichier .xlsm fonctionne très bien pour moi. Je cherchais cette solution depuis un certain temps. Merci beaucoup pour votre aide!
Il n'y a pas encore de commentaires postés ici
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés

Nous suivre

Copyright © 2009 - www.extendoffice.com. | Tous les droits sont réservés. Alimenté par ExtendOffice. | | Plan du site
Microsoft et le logo Office sont des marques commerciales ou des marques déposées de Microsoft Corporation aux États-Unis et / ou dans d'autres pays.
Protégé par Sectigo SSL