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 enregistrement [XL-2007]


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
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Par défaut Macro pour enregistrement
    Salut le forum

    J'ai essayé de réaliser un code via "Enregistrer macro" (voir code ci-dessous).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Enreg()
    '
    ' Enreg Macro
    '
     
    '
        Range("I45").Select
        ChDir "C:\"
        ActiveWorkbook.SaveAs Filename:="C:\essai.xlsm", FileFormat:= _
            xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    End Sub
    Je souhaite que le nom du fichier soit la valeur d'une cellule.
    Comment adapter mon code dans ce sens?
    Merci

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...Filename:="C:\"  & Range("A1"),...

  3. #3
    Membre éclairé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Par défaut
    Salut Mercatog

    merci pour votre solution.
    J'ai testé mais y'a debogage sur cette partie du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveWorkbook.SaveAs Filename:="C:\" & Range("A1").Value.xlsm, FileFormat:= _
            xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    Pouvez-vous voir pour moi?
    Aussi dois-je rester dans une feuille précise pour que la macro fonctionne?

  4. #4
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut macro pour enregistrement
    Bonsoir,

    Ceci marche bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub Enreg()
     
        ActiveWorkbook.SaveAs Filename:="c:\" & Feuil1.Range("A1")
        ', FileFormat:= xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False ne semblent pas indispensables
    End Sub
    Selon moi, c'est ton .xlsm qui pose problème. Outre qu'il n'est pas utile, si tu y tiens il faut je pense écrire: (pas essayé)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ActiveWorkbook.SaveAs Filename:="C:\" & range("a1") & ".xlsm", FileFormat:= _
            xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    Cprdialement,

  5. #5
    Membre éclairé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Par défaut
    Salut nibledispo et le forum

    C'est super.
    Ca marche bien.
    J'ai essayé de changer la gestion des dossiers dans lesquels mes fichiers devront être enregistrés.
    Voici la nouvelle donne:
    dans le disque local C, j'aurai un dossier intitulé "Commercial".
    dans ce dossier, j'ai un sous dossier intitulé "EXERCICE 2013".
    dans ce dossier (Exercice 2013) j'ai un sous dossier intitulé PROFORMA 2013.
    C'est dans ce dernier sous dossier que mes fichiers seront enregistrés.
    2013 représente l'année en cours.
    Si on venait à changer d'année, il faudra crée dans "Commercial" un sous dossier "EXERCICE + l'année en cous"(exemple :EXERCICE 2014) et dans ce sous dossier un autre sous dossier qui s'intitulera "PROFORMA + l'année en cours (PROFORMA 2014).
    Autrement dit, il faudra définir une condition comme par exemple :si le dossier dans lequel l'enregistrement devra être fait n'existe pas (ce qui signifie que y'a eu changement d'année), qu'un dossier soit crée en respectant la logique déjà décrit ci-dessus.
    Comment adapter le code ci-dessous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Enreg()
     
        ActiveWorkbook.SaveAs Filename:="c:\" & Feuil1.Range("A1")
        ', FileFormat:= xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False ne semblent pas indispensables
    End Sub
    Merci

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    En prenant la date système comme base
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Enregistrer()
    Dim Dossier As String, Exercice As String, Proforma As String
     
    Dossier = "C:\Commercial"
     
    Exercice = Dossier & "\EXERCICE " & Format(Date, "yyyy")
    If Dir(Exercice, vbDirectory) = "" Then MkDir Exercice
     
    Proforma = Exercice & "\PROFORMA " & Format(Date, "yyyy")
    If Dir(Proforma, vbDirectory) = "" Then MkDir Proforma
     
    ThisWorkbook.SaveAs Filename:=Proforma & "\" & Feuil1.Range("A1") ', FileFormat:=xlOpenXMLWorkbookMacroEnabled
    End Sub

  7. #7
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut macro pour enregistrement
    Bonsoir,

    Première chose à savoir : comment VBA (ou toi) décide-t-il actuellement que le contenu de A1 (nom fichier) sera enregistré dans un répertoire plutôt qu'un autre ?

    Soit ce contenu (nom du fichier) contient l'année et alors la détermination du répertoire est claire.

    Soit il ne le contient pas et VBA décide que l'enregistrement du fichier se fait dans le repertoire correspondant à l'année de l'enregistrement.

    Soit autre critère qui ne me vient pas à l'esprit.

    Cordialement,

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

Discussions similaires

  1. création macro pour enregistrer code VBA
    Par Solenne86 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/07/2009, 04h00
  2. Crée macro pour enregistrer en fichier .csv
    Par jonki dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/07/2008, 14h24
  3. Réponses: 12
    Dernier message: 31/07/2007, 15h21
  4. [VB] macro pour enregistrer sous
    Par CélineM dans le forum SDK
    Réponses: 1
    Dernier message: 07/06/2007, 12h28
  5. macro pour enregistrer sous
    Par macromega dans le forum Général VBA
    Réponses: 2
    Dernier message: 03/05/2007, 19h17

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