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 :

Macro pour renommer un fichier avant enregistrement [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Macro pour renommer un fichier avant enregistrement
    Bonsoir le forum !

    Je cherche à forcer un nom d'enregistrement pour un modèle excel (xlt) :
    Mon modèle xlt propose directement d'"enregistrer sous" et non pas d'enregistrer sur mon fichier d'origine.
    Je souhaiterais aller un peu plus loin :
    Lorsque la fenêtre "enregistrer sous" apparaît, je souhaiterai que le nom d'enregistrement du fichier soit pré-rempli.
    Ce nom d'enregistrement fait référence à des cellules de mon fichier.

    A force de fouiller un peu, j'ai trouvé ce code que j'ai adapté à mes besoins :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Enregistrer_sous()
        info1 = Sheets("Prêt>20k€").Range("AK26")
        info2 = Sheets("Prêt>20k€").Range("AK27")
        info3 = Sheets("Prêt>20k€").Range("AK28")
        info4 = Sheets("Prêt>20k€").Range("AO12")
        info5 = Sheets("Prêt>20k€").Range("BK12")
        info6 = Sheets("Prêt>20k€").Range("O12")
        enregistre = ActiveWorkbook.Path & "\" & "Fiche d'analyse" & "_" & info2 & " - " & info3 & "_" & info4 & ".xls"
        ThisWorkbook.SaveAS (enregistre)
        End Sub
    Par contre, ce code me pose deux problèmes :
    - il faut le lancer manuellement(il ne fonctionne pas en cliquant sur l'icone disquette, ni en faisant "fichier-enregistrer" ou "fichier-enregistrer sous".
    - cette macro enregistre mon fichier ainsi renommé dans le répertoire où se trouve le fichier source.

    Pensez-vous qu'il est possible :
    - d'adapter cette macro pour la lancer automatiquement (en cliquant sur l'icône disquette par exemple) ?
    - d'ouvrir le pop-up "enregistrer sous" et surtout de laisser aux utilisateurs la possibilité d'enregistrer le fichier dans le répertoire de leur choix ?

    Un grand merci d'avance à tous ceux qui pourront m'accorder un peu de leur temps.
    -

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Lorsque tu cliques sur la disquette tu déclenches l'évènement Workbook_BeforeSave du classeur.

    C'est là que tu dois mettre ton code.

    Philippe

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Bonjour Philippe, le forum !

    Merci pour ta réponse : j'ai rajouter la fonction Beforesave dans ma macro (j'aurai peut-être également dû faire part de mon niveau en vba : débutant motivé !) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     Option Explicit
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
        info2 = Sheets("Prêt>20k€").Range("AK27")
        info3 = Sheets("Prêt>20k€").Range("AK28")
        info4 = Sheets("Prêt>20k€").Range("AO12")
        enregistre = ActiveWorkbook.Path & "\" & "Fiche d'analyse" & "_" & info2 & " - " & info3 & "_" & info4 & ".xls"
        ThisWorkbook.SaveAS (enregistre)
    End Sub
    En fait, ce que je souhaiterais, c'est qu'en cliquant sur l'icône de la disquette, la fenêtre "enregistrer sous" s'ouvre.
    J'ai réussi à le faire simplement en enregistrant mon fichier xls en xlt.
    Par contre, le code suivant m'enregistre directement mon fichier à un endroit (celui où se trouve le dossier source) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     enregistre = ActiveWorkbook.Path & "\" & ..............
    Sais-tu s'il est possible de laisser à l'utilisateur le choix de l'endroit d'enregistrement tout en proposant quand même un nom d'enregistrement pour le fichier ?
    Par exemple en renommant enregistre = par name = ?

    D'avance, merci beaucoup !

  4. #4
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Bonjour Philippe, le forum,
    je viens de trouver la réponse à ma question donc je clôture mon post.
    Merci à Philippe pour son aide ainsi qu'à Job75 qui m'a permis d'avancer grâce à son code.

    Pour ceux que ça pourrait intéresser, voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
        If Sheets("Prêt>20k€").Range("AK27") = "" Or _
            Sheets("Prêt>20k€").Range("AK28") = "" Or _
            Sheets("Prêt>20k€").Range("AO12") = "" Then
            MsgBox "Afin de pouvoir enregistrer votre fichier, vous devez renseigner les éléments suivants dans la FA : Enseigne et ville du PDV, Structure juridique"
            Sheets("Prêt>20k€").Range("AK27").Select
            Cancel = True
        Else
            Nom = "Fiche d'analyse" & "_" & Sheets("Prêt>20k€").Range("AK27") & " - " & Sheets("Prêt>20k€").Range("AK28") & "_" & Sheets("Prêt>20k€").Range("AO12") & ".xls"
            If ThisWorkbook.Path = "" Then SendKeys Nom
        End If
    End Sub
    Bonne journée à tous et à bientôt,
    jayroom

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

Discussions similaires

  1. [XL-2010] Macro pour renommer des fichiers à partir d'une liste de nom de fichiers
    Par thomahh dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 25/01/2013, 17h03
  2. Macro pour renommer les fichiers
    Par cristophil dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/06/2011, 12h10
  3. [VBA-E] Macro pour convertir un fichier texte en excel
    Par Nicolas67 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/05/2006, 14h47
  4. Appel d'une fonction pour renommer un fichier
    Par navis84 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/04/2006, 15h13
  5. [Upload] Renommer un fichier avant de l'envoyer
    Par wishmastah dans le forum Langage
    Réponses: 10
    Dernier message: 02/04/2006, 01h25

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