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

  1. #1
    Membre habitué Avatar de Djohn
    Profil pro
    Inscrit en
    Février 2007
    Messages
    308
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 308
    Points : 140
    Points
    140
    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 habitué Avatar de Djohn
    Profil pro
    Inscrit en
    Février 2007
    Messages
    308
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 308
    Points : 140
    Points
    140
    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 confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 549
    Points : 556
    Points
    556
    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
    Membre régulier Avatar de doringen
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 73
    Points : 87
    Points
    87
    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")
    J´ai l´habitude de coder comme un lance-grenades
    Alors ne vous étonnez pas si mes macros vous pétent dans les doigts...

  5. #5
    Membre habitué Avatar de Djohn
    Profil pro
    Inscrit en
    Février 2007
    Messages
    308
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 308
    Points : 140
    Points
    140
    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

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

    Informations forums :
    Inscription : Juillet 2004
    Messages : 549
    Points : 556
    Points
    556
    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

  7. #7
    Membre habitué Avatar de Djohn
    Profil pro
    Inscrit en
    Février 2007
    Messages
    308
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

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


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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    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 !

  9. #9
    Expert éminent sénior


    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
    Points : 20 038
    Points
    20 038
    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

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 549
    Points : 556
    Points
    556
    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

  11. #11
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Juste une petite remarque pratique...

    Si, dans un nom de fichier, on utilise une date au format "jjmmaaaa", le tri se fera sur le jour, puis le mois et, enfin, l'année.
    Pas très pratique pour faire des recherches.

    Il est plus intéressant d'utiliser le format date japonais "aaaammjj" qui permettra de trier dans un ordre logique: année, puis mois, puis jour.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

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