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 :

Fonction Save et Save As de menu Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 20
    Points : 17
    Points
    17
    Par défaut Fonction Save et Save As de menu Excel
    Bonjour,

    J'ai cree un bouton (Userform) qui me permet d'enregistrer ma feuille selon un processus bien precis (Nom + repertoire...)

    Je souhaiterais que les fonctions Save et Save As de la barre de menu d'excel renvoie directement a ce que fait mon bouton et nom a l'enregitrement classique d'excel.
    Je ne connais pas les codes pour maitriser les fonctions de la barre de menu...

    merci d'avance.

    christophe

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Points : 824
    Points
    824
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    'Dans le module ThisWorkbook
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
        Processus
    End Sub
     
    'Dans ton userform
    Private Sub CommandButton1_Click()
        Processus
    End Sub
     
    'Dans un module standard
    Sub Processus()
        'Ton processus bien précis
    End Sub
    Cordialement,

    Tirex28/

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Bonjour,

    Jette un oeil à l'event BeforeSave de ton WorkBook C'est là-bas qu'il faut placer ton code ! Et dans ton UserForm bien entendu !

    Bonne chance

    EDIT : et mince, y'a un dinosaure qui vient de me passer dessus Carnivore en plus ! Aïe, non, pas le bras ! Salut tirex

  4. #4
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    je rajouterais juste cancel=true dans le before save. Pour annuler l'enregistrement "normal"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'Dans le module ThisWorkbook
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
        cancel=true
        Processus
    End Sub
    Par contre j'ignore ce que tu fait avec tes fonction save et save as et je ne sais pas si cela active le BeforeSave (ce qui risquerais de lancer une vilaine boucle)

    Edit : Je vien de vérifier effectivement ca lance une vilaine boucle du coup il faut "encadrer" saveas par EnableEvents

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Application.EnableEvents = False
    ThisWorkbook.SaveAs "C:\test.xls"
    Application.EnableEvents = True

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Points : 824
    Points
    824
    Par défaut
    Re,

    Citation Envoyé par Krovax
    je rajouterais juste cancel=true dans le before save. Pour annuler l'enregistrement "normal"


    Citation Envoyé par Krovax
    Edit : Je vien de vérifier effectivement ca lance une vilaine boucle du coup il faut "encadrer" saveas par EnableEvents


    Suite a ces deux remarques tres pertinentes je complete un peu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    'Dans le module ThisWorkbook
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
        Cancel = True
        Processus
    End Sub
     
    'Dans ton userform
    Private Sub CommandButton1_Click()
        Processus
    End Sub
     
    'Dans un module standard
    Sub Processus()
        Application.EnableEvents = False
        On Error GoTo ErrorHandler
     
        'Ton processus bien précis
     
        Exit Sub
    ErrorHandler:
        Application.EnableEvents = True
    End Sub
    Bonne journée,

    Tirex28/

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    Merci beaucoup.

    + J'ai bien affecte mon processus de sauvegarde a mon bouton "save".

    + J'ai bien cree la macro de processus de sauvegarde (entouree par les "Application. EnableEvents...")

    => La macro fonctionne, le bouton fonctionne!

    + J'ai bien place l'Event BeforeSave dans This Workbook.

    => Lorsque je choisi 'Fichier', 'Save As' ou 'Save', mon processus de sauvegarde ne se met pas en route mais seulement la sauvegarde "classique" d'Excel.

    Comment faire ?

    Merci d'avance

    Christophe

Discussions similaires

  1. [XL-2010] compromis entre fonction "saveas" et "save"
    Par nunnu27 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/08/2010, 23h11
  2. fonction do not save
    Par will Igetit dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/09/2008, 11h07
  3. Réponses: 5
    Dernier message: 21/03/2006, 15h00
  4. [VBA-E]supprimer les barres de menu Excel
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/03/2006, 10h02
  5. Fonctions via menu excel
    Par djid72 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/03/2005, 11h44

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