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

Comment désactiver ou ne pas autoriser les options Enregistrer et enregistrer sous dans Excel?

Normalement, lorsque nous cliquons sur la fonction Enregistrer ou Enregistrer sous, nos données modifiées dans le classeur seront enregistrées immédiatement. Mais, parfois, votre fichier Excel n'est pas autorisé à être modifié et enregistré par d'autres utilisateurs lorsqu'ils lisent le fichier. Cet article fournit la méthode VBA pour désactiver les options Enregistrer et enregistrer sous dans Excel.

Désactiver les options Enregistrer et enregistrer sous avec le code VBA


Désactiver les options Enregistrer et enregistrer sous avec le code VBA

Vous pouvez exécuter le code VBA ci-dessous pour désactiver les options Enregistrer et enregistrer sous dans Excel.

1. Dans le classeur, vous devez désactiver les fonctions Enregistrer et enregistrer sous, veuillez appuyer sur autre + F11 touches simultanément pour ouvrir le Microsoft Visual Basic pour applications fenêtre.

2. dans le Microsoft Visual Basic pour applications fenêtre, double-cliquez Ce classeur dans la barre de gauche, copiez et collez le VBA 1 ci-dessous dans la fenêtre Code, puis cliquez sur le bouton Épargnez bouton. Voir la capture d'écran:

VBA 1: désactivez les options Enregistrer et enregistrer sous dans Excel

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ThisWorkbook.Saved = True
End Sub

3. Dans l'ouverture Enregistrer sous fenêtre, sélectionnez un dossier pour enregistrer le classeur, nommez le classeur selon vos besoins et sélectionnez Cahier de travail Excel avec macro-activé du Enregistrer en tant que type de liste déroulante, et enfin cliquez sur le Épargnez .

4. Maintenant, copiez et collez le VBA 2 ci-dessous dans le Ce classeur fenêtre de code. Voir la capture d'écran.

VBA 2: désactivez les options Enregistrer et enregistrer sous dans Excel

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim xName As String
xName = "CancelBeforeSave"

If Not Evaluate("=ISREF('" & xName & "'!A1)") Then
    Sheets.Add(after:=Worksheets(Worksheets.count)).Name = xName & ""
    Sheets(xName & "").Move after:=Worksheets(Worksheets.count)
    Sheets(xName & "").Visible = False
    Exit Sub
End If
    Cancel = True
End Sub

5. Cliquez sur l' Épargnez pour enregistrer le code, puis fermez le classeur.

Le classeur a été enregistré en tant que classeur Excel prenant en charge les macros avec le Épargnez et Enregistrer sous fonctions désactivées.

Notez les: Il semble que les modifications soient enregistrées dans la feuille de calcul actuelle chaque fois que vous modifiez et enregistrez le classeur. Mais après avoir fermé et rouvert le classeur, vous constaterez que les modifications n'ont pas pu être enregistrées.


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 (27)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
cela ne fonctionne pas. Je ne peux pas enregistrer le code, il a disparu une fois que j'ai rouvert le fichier. Comment enregistrer le code ?
Ce commentaire a été minimisé par le modérateur sur le site
Cher té,
Merci pour votre question. L'article est mis à jour pour prendre en charge l'enregistrement du code dans le classeur maintenant.
Ce commentaire a été minimisé par le modérateur sur le site
cher
l'article n'est pas mis à jour. ça ne marche pas
Ce commentaire a été minimisé par le modérateur sur le site
Salut jen,
L'article a été mis à jour à nouveau avec la résolution de problèmes. Veuillez essayer. Merci pour votre commentaire.
Ce commentaire a été minimisé par le modérateur sur le site
La mise à jour du code ajoute une feuille, mais ne vérifie jamais réellement s'il y a une valeur TRUE/FALSE dans cette feuille. La mise à jour ne corrige rien, elle crée simplement une feuille inutile dans le classeur.

Je pense que vous avez oublié de vérifier s'il y a une valeur VRAI/FAUX sur cette feuille.
Ce commentaire a été minimisé par le modérateur sur le site
Comme TEE l'a posté, comment enregistrons-nous le fichier avec la macro ? Il n'y est pas quand je rouvre. Je reçois également un bogue sur le bit ThisWorkbookSaved = True.
Ce commentaire a été minimisé par le modérateur sur le site
Cher Les,
Merci pour votre question. L'article est mis à jour pour prendre en charge l'enregistrement du code dans le classeur maintenant.
Ce commentaire a été minimisé par le modérateur sur le site
Comme TEE et LES l'ont posté, comment enregistrons-nous le fichier avec la macro ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,
Merci pour votre question. L'article est mis à jour pour prendre en charge l'enregistrement du code dans le classeur maintenant.
Ce commentaire a été minimisé par le modérateur sur le site
Juste pour aider quiconque lit cet article à la recherche d'aide pour supprimer le bouton de sauvegarde, j'ai pensé placer la réponse ici car "Crystal" ne semble pas répondre à la question ....


Si vous placez le classeur en "mode conception", puis cliquez sur ENREGISTRER, cela devrait fonctionner.
Ce commentaire a été minimisé par le modérateur sur le site
Cher Rogue,
Je passe à côté du point du problème. Merci beaucoup pour votre aide et partage.

Best Regards
Ce commentaire a été minimisé par le modérateur sur le site
Je continue à recevoir une erreur de débogage
Ce commentaire a été minimisé par le modérateur sur le site
Bonne journée,
Quelle version d'Excel utilisez-vous ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, je suis un fan de ce site... J'avais l'habitude d'essayer le code. Cela fonctionne parfaitement. Mais cela désactive également "l'option Enregistrer". Je n'arrive pas à enregistrer la feuille Excel. Ce dont j'ai besoin, c'est de désactiver uniquement la fonction "Enregistrer sous", j'ai également lu les commentaires des autres utilisateurs. ThisWorkbookSaved = True ne fonctionne pas non plus pour moi. S'il te plait peux-tu aider? Merci beaucoup pour toutes vos contributions.
Ce commentaire a été minimisé par le modérateur sur le site
S'il vous plaît, je ne veux pas que quelqu'un copie ou enregistre mon fichier Excel, comment puis-je supprimer enregistrer ou enregistrer sous ?
Ce commentaire a été minimisé par le modérateur sur le site
J'ai essayé d'utiliser le code pour NE PAS ENREGISTRER le fichier. Mais cela n'a pas fonctionné. Il enregistre le fichier.
Ce commentaire a été minimisé par le modérateur sur le site
Merci pour votre réponse. Grandement apprécié. Je veux que vous me guidiez sur la façon d'envoyer un fichier enregistré à un ami qui peut ouvrir mon fichier mais seulement le lire ou le modifier, mais ne peut pas enregistrer le fichier dans n'importe quel dossier.
1. Par exemple, j'ai un fichier enregistré, que je veux envoyer à "A". Il ouvre le fichier enregistré mais après l'avoir ouvert, il lit ou apporte des modifications à mon fichier, il ne peut pas l'enregistrer de son côté dans aucun dossier.
2. J'ai un formulaire de code Internet qui interdit l'enregistrement. Mais dans ce cas, lorsque je copie et colle le code, le fichier ne s'enregistre pas. Je ne peux donc pas lui envoyer le fichier
3. Comment puis-je envoyer le fichier à la partie "A" avec un code enregistré dans l'espoir qu'il ne puisse pas enregistrer le fichier.
Ce commentaire a été minimisé par le modérateur sur le site
Brillant !   
Ce commentaire a été minimisé par le modérateur sur le site
Pour tous ceux qui ont rencontré l'erreur où après avoir déjà fait cela une fois, lorsqu'ils essaient de le faire à nouveau, le code ne sera pas enregistré :

Allez au bas du fichier excel où il montre les feuilles
Cliquez avec le bouton droit sur les feuilles
Appuyez sur Afficher
Supprimez la feuille appelée CancelBeforeSave
Ce commentaire a été minimisé par le modérateur sur le site
Salut, merci beaucoup, c'est exactement ce dont j'ai besoin, pour empêcher les autres d'enregistrer ou d'enregistrer en tant que fichier à n'importe quel endroit, et cela fonctionne pour moi, grâce au commentaire sur le "mode de conception".

Cependant, je dois toujours pouvoir apporter des modifications périodiques au fichier et enregistrer les modifications. Dois-je d'abord supprimer le code VBA, apporter les modifications, enregistrer, puis ajouter à nouveau le code VBA pour empêcher les autres d'enregistrer ? Ou existe-t-il un moyen plus simple d'apporter des modifications et d'enregistrer tout en laissant le code VBA intact ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Rochelle,
Merci pour votre avis. Le code VBA a été mis à jour comme suit. Vous devez:
1. appuie sur le autre + F11 clés pour ouvrir le Visual Basic éditeur.
2. dans le Visual Basic éditeur, double-cliquez Ce classeur à gauche Le projet NetPoulSafe volet, puis copiez le code VBA suivant dans Ce classeur (code) fenêtre.
3. Enregistrez le code et enregistrez le classeur en tant que classeur Excel prenant en charge les macros.
Notes:
1) Dans le code, "Win10x64Test" représente le nom d'utilisateur dans votre système d'exploitation. Veuillez le remplacer par votre propre nom d'utilisateur.
2) Après avoir ajouté le code, vous pouvez modifier le classeur et l'enregistrer comme d'habitude. Mais si quelqu'un d'autre obtient ce classeur, les options Enregistrer et Enregistrer sous ne seront pas disponibles.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Updated by Extendoffice 20220930
    ThisWorkbook.Saved = True
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim xName As String
xName = "Win10x64Test" 'The username in your operating system

If xName <> Environ("username") Then
Cancel = True
End If
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Je viens de découvrir que dès que je place un raccourci vers ce fichier dans un autre emplacement (où les autres vont y accéder) toutes mes protections ne fonctionnent plus. La feuille n'est pas protégée (ce que j'ai précédemment défini), le classeur n'est pas protégé (ce que j'ai également défini précédemment) et la capacité Enregistrer-Enregistrer sous est maintenant là, comme si le code VBA n'était pas là du tout. Si je vais au fichier d'origine, tout fonctionne toujours.

Qu'en est-il du raccourci qui supprime toutes les protections ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Rochelle,
Le code VBA ne peut pas déterminer de quelle manière le classeur est ouvert. Il ne peut donc pas empêcher les autres de modifier le fichier en l'ouvrant via un raccourci.
Désolé je ne peux pas aider avec ce problème.
Pour le premier problème que vous avez mentionné ci-dessus, j'ai besoin de temps pour voir si je peux le gérer.
Ce commentaire a été minimisé par le modérateur sur le site
Il est possible que l'utilisateur recevant le fichier désactive les macros et que le contrôle ne fonctionne pas. S'il vous plaît aider à comprendre.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Deepak Kachare,
Si vous ne voulez pas que d'autres utilisateurs désactivent les macros après avoir reçu le fichier, vous pouvez masquer le code de macro que personne ne peut ouvrir et voir.
Voyez si la méthode de l'article suivant peut vous aider.
Comment protéger et masquer les macros Excel
Ce commentaire a été minimisé par le modérateur sur le site
Merci pour votre réponse. Je pense que le lien est erroné. Pourriez-vous s'il vous plaît aider avec le lien.
Ce commentaire a été minimisé par le modérateur sur le site
Salut DEEPAK KACHARE,
Désolé pour l'erreur. Pour protéger et masquer les macros Excel, vous devez configurer comme suit.
1. Cliquez sur l' autre + F11 touches pour ouvrir l'éditeur VBA.
2. Dans l'éditeur, cliquez sur Outils > Propriétés de VBAProject.
https://www.extendoffice.com/images/stories/comments/comment-picture-zxm/vba3.png
3. dans le Propriétés de VBAProject boîte de dialogue, accédez à Identités onglet, vérifiez le Verrouiller le projet pour l'affichage boîte, entrez le mot de passe et enfin cliquez sur OK.
https://www.extendoffice.com/images/stories/comments/comment-picture-zxm/vba4.png
Désormais, toute personne (y compris vous-même) qui souhaite ouvrir l'éditeur VBA de ce classeur, un mot de passe est requis.
Il n'y a pas encore de commentaires postés ici

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