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 :

[VBA-E] une macro qui enregistre mon fichier Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Djohn
    Profil pro
    Inscrit en
    Février 2007
    Messages
    309
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 309
    Par défaut [VBA-E] une macro qui enregistre mon fichier Excel
    Bonjour,

    J'ai besoin de vos lumières, pour creer un programme qui enregistre le fichier Excel sur lequel je travail sous la nomination suivante :

    essaiDATEDUJOURparis.xls

    J'ai besoin que DATEDUJOUR soit remplacé, par la date du jour sous ce format 01032007.

    exemple :

    essai01032007paris.xls

    merci

  2. #2
    Membre éclairé Avatar de Djohn
    Profil pro
    Inscrit en
    Février 2007
    Messages
    309
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 309
    Par défaut
    je viens de penser a un truc pour le faire,

    de creer peut etre d'abord une variable pour le nom.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dim NOM as string
     
    NOM = "essai"&"formatdate"&"paris"
    pour format date je ne sais pas comment la trouver, et je ne suis pas sur que NOM, soit une variable string, car les caractères sont alphanumériques

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    557
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 557
    Par défaut
    Pour répondre à ta question, un string accept tous les caractères que ce soit de l'alphanumérique ou non

    essaie çà

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    dim nomFichier,repertoire as string
    repertoire = "C:\"
    nomFichier = "essai" & Mid(Now(), 1, 2) & Mid(Now(), 4, 2) & Mid(Now(), 7, 4) & "paris"
    ActiveWorkbook.SaveAs Filename:= repertoire &  nomFichier & ".xls"
    Tu n'as plus rien à t'occuper si ce n'est de mettre le chemin où tu sauvegarderas
    Ensuite, la date du jour sera toujours calculer correctement sans que tu n'aies rien à renseigner

  4. #4
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Citation Envoyé par helios77
    essaie çà

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    dim nomFichier,repertoire as string
    repertoire = "C:\"
    nomFichier = "essai" & Mid(Now(), 1, 2) & Mid(Now(), 4, 2) & Mid(Now(), 7, 4) & "paris"
    ActiveWorkbook.SaveAs Filename:= repertoire &  nomFichier & ".xls"

    Pourquoi tu t'embete avec un Mid ?

    Suffit de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    day(date)
    month(date)
    year(date)
    ça te donnera le jour, le mois et l'année

    Meme si tu veux faire plus précis encore ut peux faire comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    dim date_du_jour,jour,mois,annee
    jour = day(date)
    mois = month(date)
    annee = year(date)
    if jour < 10 then jour = 0 & jour
    if mois < 10 then mois = 0 & mois
    date_du_jour = jour & mois & annee
    A toid e mettre dans l'ordre après
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    tiens j'en remet une couche...
    il y as aussi format...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Test()
    Dim stNom As String
     
    stNom = "essai" & Format(Now(), "ddmmyyyy") & "paris.xls"
    MsgBox stNom
     
    End Sub

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    557
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 557
    Par défaut
    oui je sais mais je voulais justement éviter de rajouter les tests pour concatener un 0 en cas de besoin

    D'après cesbesoins, il voulais les jour et les mois sur 2 caractères

    En même temps ta version permettrait de mettre l'application à l'international

    ton code tient sur 6 linges moi sur une seule

    par contre le coup du format je ne connaissais pas sous Excel

  7. #7
    Membre éclairé Avatar de doringen
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 73
    Par défaut
    J´ai testé, un NOM dimensionné en string prend aussi les chiffres
    Pour la date, je passe par une cellule d´onglet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    dim nom as string
     
    nom = "essai " & Sheets("START").Range("G21").Value
        b = Application.GetSaveAsFilename(nom, "Microsoft Excel-Arbeitsmappe (*.xls), *.xls", , "Choose a saving location for your copy")

  8. #8
    Membre éclairé Avatar de Djohn
    Profil pro
    Inscrit en
    Février 2007
    Messages
    309
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 309
    Par défaut
    tu peux m'expliquer cette ligne sur ton premier code

    Mid(Now(), 1, 2) & Mid(Now(), 4, 2) & Mid(Now(), 7, 4)

    thx

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    557
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 557
    Par défaut
    bien sur
    Now() retourne la date du jour ==> 01/03/2007 14:22:35:00
    La fonction Mid permet de décoper la chaine de caractère
    Ainsi Mid(chaine,debut,longueur)
    Mid(Now(), 1, 2) ==> 2 caractères à partir du premier ==> 01
    Mid(Now(), 4, 2) ==> 2 caractère à partir du quatrième ==> 03
    Mid(Now(), 7, 4) ==> 4 caractères à partir du septième ==> 2007

    Voilà, en concaténant le tout, tu trouves 01032007

  10. #10
    Membre éclairé Avatar de Djohn
    Profil pro
    Inscrit en
    Février 2007
    Messages
    309
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 309
    Par défaut
    ca m'a l'air tout bon, je vais tester ton code


Discussions similaires

  1. Créer une Macro qui transforme un fichier texte en fichier Excel
    Par Vanessa Utzinger dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 17/12/2014, 16h20
  2. [XL-2013] Une macro pour enregistrer un fichier excel en pdf
    Par petchy dans le forum Excel
    Réponses: 5
    Dernier message: 29/03/2014, 12h45
  3. un macro qui enregistre un tableau excel sur un fichier word
    Par maherom dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 07/08/2009, 01h33
  4. Réaliser une macro qui enregistre le résultat d'une requête
    Par boulette85 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 22/02/2007, 18h36
  5. [VBA-E]une macro unique pour plusieurs fichiers excel
    Par fanchic29 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/04/2006, 16h20

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