IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Annuler l'enregistrement d'un classeur


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    420
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2004
    Messages : 420
    Points : 174
    Points
    174
    Par défaut Annuler l'enregistrement d'un classeur
    Décidemment, j'ai beaucoup de questions que je n'arrive pas à résoudre aujourd'hui. Connaissez vous la commande en vba pour annuler l'enregistrement d'un classeur sur l'évenement before save ?

  2. #2
    Membre éprouvé
    Avatar de ouisansdoute
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    931
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 931
    Points : 1 079
    Points
    1 079
    Par défaut
    Bonjour,

    Je ne sais pas si ça répond à la question mais :
    Pour ne pas enregistrer les changements :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkBook.Saved = True ' on fait croire à Excel que le save a déjà eu lieu
    A l'ouverdure d'un classeur, le Saved est positionné à True
    Le Saved passe à False dès qu'une modification a lieu sur un document. Le remettre à True ne provoque pas l'enregistrement mais fais croire à Excel que les modfications ont été prises en compte

  3. #3
    Membre habitué
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    420
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2004
    Messages : 420
    Points : 174
    Points
    174
    Par défaut
    Ca ne fonctionne pas, l'enregistrement s'effectue malgré tout.

  4. #4
    Membre éprouvé
    Avatar de ouisansdoute
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    931
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 931
    Points : 1 079
    Points
    1 079
    Par défaut
    Bonjour,

    Ca marche sur BeforeClose.
    Comme son nom l'indique la rubrique BeforeSave d'exécute AVANT l'enregistrement du fichier.

    Peut-être Vaudrait-il mieux mettre le ActiveWorkBook.Saved=True dans la rubrique Workbook_BeforeClose, pour fermer sans enregistrer.

  5. #5
    Membre habitué
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    420
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2004
    Messages : 420
    Points : 174
    Points
    174
    Par défaut
    Je ne veux pas annuler l'enregistrement à la fermeture du classeur mais bien lorsqu'on clique sur l'icone sauvegarder.

  6. #6
    Membre éprouvé
    Avatar de ouisansdoute
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    931
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 931
    Points : 1 079
    Points
    1 079
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Cancel = True
    End Sub
    désactive le bouton Enregistrer et Ctrl+S

    Pour désactiver le menu Fichier/Enregistrer et Enregistrer Sous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    sub auto_open()
    with CommandeBars("Worksheet Menu Bar")
    .Controls(1).Controls(4).enabled = false
    .Controls(1).Controls(5).enabled = false
    end with
    end sub
    Il faut quand même les remettre à True a un moment sinon, même le code n'est pas enregistré à la fermeture du classeur

  7. #7
    Membre habitué
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    420
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2004
    Messages : 420
    Points : 174
    Points
    174
    Par défaut
    Merci ! Cancel=true fonctionne très bien.

  8. #8
    Membre éprouvé
    Avatar de ouisansdoute
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    931
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 931
    Points : 1 079
    Points
    1 079
    Par défaut
    Contente que ça marche.

    n'oublie pas de cliquer sur

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. annuler un enregistrement
    Par moicats dans le forum Access
    Réponses: 16
    Dernier message: 15/05/2006, 09h06
  2. [Excel] Problème d'enregistrement d'un classeur
    Par Geache dans le forum Excel
    Réponses: 3
    Dernier message: 28/03/2006, 20h39
  3. [VBA-E]Obtenir la date d'enregistrement d'un classeur fermé
    Par Sylvain2003 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/03/2006, 14h36
  4. Enregistrer automatiquement un classeur Excel
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/03/2006, 11h43
  5. annulation d'enregistrement
    Par Yves2507 dans le forum Access
    Réponses: 2
    Dernier message: 23/11/2005, 22h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo