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 tout avant enregistrement [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 57
    Points : 46
    Points
    46
    Par défaut annuler tout avant enregistrement
    bonjour
    Je voudrais ' annuler tout ce qui a été fait depuis le dernier enregistrement ' dans une proc , qui doit par la suite enregistré la feuille
    avez vous un code? merci d'avance

  2. #2
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonsoir,
    un moyen simple, tu enregistres ton fichier sous un autre nom que tu supprimeras après avoir ré-ouvert l'original
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ActiveWorkbook.SaveAs Filename:= _
            "C:\ton chemin\nomfichier.xls", FileFormat:=xlExcel8, _
            Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
            CreateBackup:=False
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Bonjour,
    ??? annuler toutes les modifications avant de sauver ???
    Ben y a qu'a pas sauver
    A+

  4. #4
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 57
    Points : 46
    Points
    46
    Par défaut
    Ben y a qu'a pas sauver


    j'y avais pensé mais vu que la proc avant fermeture doit effectuer d'autres operations, ca ne m'arrange pas de garder les modif fait par l'utilisateur.

  5. #5
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour le fil le forum tu peus peut être t'orienter sur un truc de ce style
    macro1 est sensé faire quand l'utilisateur ferme le fichier puis pas de sauvegarde
    protéger ton projet par mot de passe.suffisant pour un non bidouilleur excel!!!
    tu peus affiner en mettant un code par exemple "toto" en a1 pour que toi tu puisses sauvegarder facilement
    dans thisworkbook

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Option Explicit
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Macro1
    ThisWorkbook.Saved = True
    End Sub
    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 = IIf(Sheets(1).[a1] = "toto", False, True)
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
    Sheets(1).[a1] = ""
    End Sub
    SALUTATIONS

  6. #6
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Bonsoir,
    je vote pour la méthode casefayere car le plus logique est de recharger la dernière sauvegarde, mais pas besoin de sauver à mon avis :

    ceci, appelé quand tu en as besoin , fonctionne très bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub reload()
    ThisWorkbook.Saved = True
    Workbooks.Open ThisWorkbook.FullName
    End Sub
    Bonne soirée à tous. Salut Leti.
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  7. #7
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 57
    Points : 46
    Points
    46
    Par défaut
    Il y a deja effectivement une macro a executer en before_Close ( qui est doit laisser paraitre une seule feuille (de message) et masquer toutes les autres, ceci dans le but " d'obliger " l'utilisateur a activer les macros)... Mais je pense que la solution de recharger le document me parais interressante.
    ..... avec mes remerciement pour avoir eclairé ma lanterne de debutant en vba ( je pense que ca se voit..)

  8. #8
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    re le fil dans ce cas tu peus faire plus simple la macro1 tu la met dans open
    bien sûr tes feuilles tu les caches dans propriétes vba
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    visible=2-xlsheetVeryhidden
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Option Explicit
    Sub macro1()
    Dim ws As Worksheet
    For Each ws In Sheets
    ws.Visible = True
    Next
    Sheets("message").Visible = False
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Option Explicit
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ThisWorkbook.Saved = True
    End Sub
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Cancel = IIf(Sheets("Feuil2").[a1] = "toto", False, True)
    End Sub
    Private Sub Workbook_Open()
    Sheets("Feuil2").[a1] = ""
    macro1
    End Sub
    SALUTATIONS

  9. #9
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 696
    Points
    6 696
    Par défaut
    Bonjour,

    j'adore vba , mais n'est-on pas tout simplement en train de parler des raisons de l'utilisation d'un "modèle" (xlt) ?

    cordialement,

    Didier
    Didier Gonard

    Dernier tutoriel :
    Le VBA qu'est ce que c'est ?
    Tutoriels : Voir la liste de mes tutoriels Excel & VBA et mon site pro sur ma Page DVP
    Cours et tutoriels pour apprendre Excel
    N'oubliez pas de mettre : ..quand c'est le cas !

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 21/06/2006, 14h50
  2. Réponses: 7
    Dernier message: 30/05/2006, 11h00
  3. Réponses: 13
    Dernier message: 01/12/2005, 17h44
  4. Réponses: 7
    Dernier message: 29/11/2005, 11h07
  5. [Formulaire] vérifier les champs avant enregistrement
    Par julien_t_m dans le forum Access
    Réponses: 5
    Dernier message: 16/10/2005, 20h53

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