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 :

sauvegarde de fichier par Workbook_beforesave


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2016
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2016
    Messages : 306
    Par défaut sauvegarde de fichier par Workbook_beforesave
    Bonjour,

    mon soucis est qu'à partir de mon code le fichier que je souhaite enregistrer se fait 2 fois

    je pense que l'événement Workbook_beforsave enregistre dans le chemin désiré
    puis il m'ouvre la boîte de dialogue avec le chemin souhaité et me dis que le fichier existe déjà

    Qu'est ce qui n'est pas correct dans mon code, merci pour votre aide.
    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
    Private Sub Workbook_beforesave(ByVal SaveasUI As Boolean, cancel As Boolean)
    Dim Repertoire As String
    Dim Fichier As String
    Dim Chemin As String
    cancel = False
     
    If SaveasUI = False Then
    Exit Sub
    End If
     
     
    Fichier = Range("D29").Value & "_" & Range("D105").Value & "_" & Range("D72").Value & "_" & "sec" 'récupérer le nom du fichier
    Repertoire = "c:\Expertise\archivage auto (test)\sec"
    Chemin = Repertoire & "\" & Fichier
    'Application.FileDialog(msoFileDialogSaveAs).InitialFileName = Chemin
    'Application.FileDialog(msoFileDialogSaveAs).Show
    ActiveWorkbook.SaveAs (Chemin)
     
    End Sub

  2. #2
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Cette question va bien faire rire unparia.
    A moins qu'elle ne le désole...

    Que fait, entre autre, la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.SaveAs (Chemin)
    Elle lance la procédure événementielle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Workbook_BeforeSave(ByVal SaveasUI As Boolean, cancel As Boolean)
    D’où l'enregistrement par deux fois.

    Change d'événement.
    Beforesave n'est pas faite pour enregistrer, mais plutôt pour empêcher un enregistrement intempestif nuisible au classeur.

  3. #3
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2016
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2016
    Messages : 306
    Par défaut
    Ok merci

    c'est ce que j'avais compris. Il faut que je détecte quand le filedialog "enregistrer sous" est sollicité alors je change le nom du fichier par celui dans une cellule. Mais je ne vois pas (pour le moment) où et quoi il faut utiliser pour cela...

    je cherche...

    dit autrement. Lorsque je vais dans le menu fichier puis enregistrer puis une feneêtre s'ouvre (je pense que c'est windows qui génère cela) à ce moment comment changer le nom du fichier à enregistre par défaut. Je sais qu'il faudra utiliser le initialFilename = chemin mais c'est savoir que la fneêtre de filedialog est active ou sollicité c'est ce truc qui m'emmerde en fait

  4. #4
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Regarde dans le module ThisWorkbook les événements mis à ta disposition.
    Tu trouveras, entres autres : Workbook_BeforeClose(), Workbook_SheetActivate() etc...

  5. #5
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2016
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2016
    Messages : 306
    Par défaut
    Pijaku,

    en fait j'ai regardé dans le listing des méthodes (si je ne me trompe pas) du workbook

    mon point dur est ici c'est à dire
    je suis sur ma feuille
    toutes les cellules sont remplies.
    Menu fichier
    enregistrer sous
    renseigne le nom du fichier grace à certaines cellules
    clique sur ok
    ET LA JE ME DIS "tiens je me suis trompé" je reviens sur ma feuille
    je change un élément de ma cellule
    et je recommence (menu fichier ...)
    et la j'ai envie de rester sur le feuille toute la journée et puis le soir je décide de fermer le excel

    c'est quel événement le plus approprié... et le MSDN de microsoft est compliqué pour s'y perdre

  6. #6
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Avant la fermeture du classeur.
    Le soir, tu fermes ton classeur et il s'enregistre bien comme tu veux...

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

Discussions similaires

  1. Recherche & Sauvegarde des fichiers par leurs Extensions
    Par hackoofr dans le forum Vos Contributions VBScript
    Réponses: 1
    Dernier message: 16/02/2013, 07h22
  2. Soucis avec rsync sur sauvegarde de fichier par extensions
    Par ThierryForum dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 04/02/2013, 16h32
  3. Sauvegarder un fichier access par macro
    Par sphinx18 dans le forum IHM
    Réponses: 1
    Dernier message: 10/10/2008, 19h34
  4. Fermer sans sauvegarde un fichier par macro
    Par blobnet dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/05/2008, 16h59

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