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 :

Commande ActiveWorkBook Save


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Femme Profil pro
    Formatrice bureautique
    Inscrit en
    Septembre 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Formatrice bureautique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 202
    Par défaut Commande ActiveWorkBook Save
    Hello,

    J'utilisais dans Excel 2003, la commande ActiveWorkBook.Save pour enregistrer les modifications apportées à mon classeur. En passant à 2010, cette commande ne fonctionne plus... Je n'ai aucun message d'erreur mais la commande ne s'exécute pas car en fermant le fichier, un message me demande d'enregistrer les moficiations du classeur.

    Est-ce que quelqu'un a également eu ce problème et conaît peut-être la commande à utiliser avec Excel 2010 pour simplement enregistrer les modifications apportées à un classeur existant sans avoir la boîte de dialogue d'enregistrement ou le message qui demande d'écraser l'ancien fichier ?

    Merci d'avance et bonne fin de journée,

    Caroline

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Tente ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkBook.Close SaveChanges:=True

  3. #3
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Ou alors, dans le code de "ThisWorkbook" place ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        ActiveWorkbook.Save
    End Sub
    L'une ou l'autre de mes propositions dépendent de l'utilisation que tu as de ton classeur !

  4. #4
    Membre confirmé
    Femme Profil pro
    Formatrice bureautique
    Inscrit en
    Septembre 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Formatrice bureautique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 202
    Par défaut Uniquement la sauvegarde
    Hello Kimy_Ire,

    Merci pour tes réponses qui fonctionne très bien

    Seul problème est que je souhaitais pas forcéement fermer mon classeur mais uniquement enregistrer les modifications apportées tout en restant dans le classeur...

    C'est pour ceci qu'en 2003, j'utilisation la méthode :

    Mais... qui ne s'exécute plus avec 2010...

  5. #5
    Membre expérimenté
    Homme Profil pro
    Technicien Méthodes
    Inscrit en
    Mars 2013
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2013
    Messages : 128
    Par défaut
    je viens de tester sur EXCEL 2010 de mon coté, et aucun soucis.

    No coprendo

  6. #6
    Membre averti
    Homme Profil pro
    autre
    Inscrit en
    Novembre 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Novembre 2016
    Messages : 15
    Par défaut enregitrement automatique + enregistrement de sauvegarde
    Bonjour, dans un de mes projets, j'ai besoin d'un enregistrement incrémentiel pour des fins de sauvegarde et de retour arrière

    en m'inspirant de ce qui a était dit / dans ThisWorkbook fait ici, j’ai fait ceci :

    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
     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
     
            If ThisWorkbook.Saved = False Then
     
        ActiveWorkbook.Save 'enregistre le fichier sous le mon d'origine
     
        ' Enregitrement de sauvegarde dans un sous dodssier
     
        nom = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4) & "_" & Format(Date, "yyyy-mm-dd") & "_" & Format(Time, "hhmmss") & ".xls"
        ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\sav\" & nom
    '    rep = MsgBox("Fichier sauvegardée sous le nom : " & nom, vbYes + vbInformation, "Worksheet Backup Copy")
        Else
        End If
     
     
    End Sub
    Tout fonctionne parfaitement pourtant, il me manque encore quelques détailles

    - je ne sais pas vérifier si le dossier de sauvegarde existe et, pour le cas ou, le créé

    - et, je voudrais également qu'en cas de Ctrl+s ou Ctrl + maj + s , il y ait aussi la sauvegarde dans le sous-dossier

    Pour la seconde partie, je suppose qu'il doit y avoir un morceau de code, spécifique à la fonction enregistrer, à placer également dans ThisWorkbook

    Merci de votre aide ...

  7. #7
    Membre averti
    Homme Profil pro
    autre
    Inscrit en
    Novembre 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Novembre 2016
    Messages : 15
    Par défaut
    je me répond à moi-même
    pour la fonction vérifier et créé le sous-dossier j'ai trouver et au final ça donne ça :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
     
            If ThisWorkbook.Saved = False Then
     
             ' ouvrir une boite à méssage :
    msg = "Faut-il enregister les changement effectués dans le fichier ?" & vbCrLf & vbCrLf & ActiveWorkbook.Path & "\" & ActiveWorkbook.Name  ' Définit le message (& vbcrlf : saut de ligne).
    Style = vbYesNo + vbDefaultButton1                                  ' Définit les boutons.
    Title = "ATTENTION !"                                               ' Définit les titres.
    Réponse = MsgBox(msg, Style, Title)
    If Réponse = vbYes Then                                             ' Vous avez choisi le bouton « Oui ».
     
        ActiveWorkbook.Save 'enregistre le fichier sous le mon d'origine
     
    Else                                                                'Vous avez choisi le bouton Non.
                                                                        ' Accomplit une autre chose (ici rien).
    End If
     
     
        ' Enregitrement de sauvegarde dans un sous dodssier quelque soit le choix précédent
     
        Dim Doss As String
     
    Doss = ActiveWorkbook.Path & "\sav\"
    If Dir(Doss, vbDirectory) = "" Then
         MkDir Doss
         MsgBox "Le sous-dossier de sauvegarde " & Doss & " a été crée"
    End If
     
     
        nom = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4) & "_" & Format(Date, "yyyy-mm-dd") & "_" & Format(Time, "hhmmss") & ".xls"
        ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\sav\" & nom
    '    rep = MsgBox("Fichier sauvegardée sous le nom : " & nom, vbYes + vbInformation, "Worksheet Backup Copy")
        Else
        End If
     
     
    End Sub
    en revanche je n'ai rien trouver pour le cas ou l'utilisateur face un enregistrement de par lui même
    (et avoir en plus une sauvegarde incrémentielle)

  8. #8
    Membre averti
    Homme Profil pro
    autre
    Inscrit en
    Novembre 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Novembre 2016
    Messages : 15
    Par défaut
    Up 😉

Discussions similaires

  1. [NT4 SP6] Commande NTBACKUP pour SAVE EXCHANGE 5.5
    Par GarsDuCalvados dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 17/06/2011, 17h04
  2. SAVE EXCEPTIONS dans commande FORALL
    Par tchoimars dans le forum PL/SQL
    Réponses: 0
    Dernier message: 19/12/2008, 16h13
  3. Réponses: 2
    Dernier message: 03/07/2008, 09h10
  4. Plantage ActiveWorkbook.Save - mémoire ?
    Par sanddv dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/05/2007, 20h10
  5. save auto => invit e commande
    Par Tukan dans le forum Windows
    Réponses: 2
    Dernier message: 20/01/2006, 21h47

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