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 :

Probleme sauvegarder avec date


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 40
    Par défaut Probleme sauvegarder avec date
    Bonjour à tous,

    Je sais qu'il y a déjà plusieurs discussions sur ce sujet, mais apparemment personne n'a le même problème que moi, et je suis sure qu'il est tout bête !

    Voila, j'utilise le code suivant pour sauvegarder un fichier avec la date du jour dans un dossier qui change selon la valeur d'une cellule:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub SaveWorkbook()
     
    Dim Chemin1$, Client$, Fichier$, Jour$
    Chemin1 = "C:\Analyse Competition\Offers\"
    Jour = Format(Now(), "yyyymmdd"
    Client = Range("B3")
    Fichier = "Analyse" & "_" & Client & "_" & Jour & ".xls"
    If Dir(Chemin1 & Client, 16) = "" Then MkDir Chemin1 & Client
    ActiveWorkbook.SaveAs Chemin1 & Client & "\" & Fichier
     
    End Sub

    Jusque la tout va bien.
    je recopie ce code dans un autre classeur et en modifie certains paramètres (chemin, client, fichier) mais j'obtiens un message d'erreur sur le mot FORMAT

    J’ai donc modifié un petit peu le code pour avoir ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub test()
     
     
    Dim Chemin1$, Client$, Fichier$, Jour$
    Chemin1 = "C:\2008\SALES RESULTS\Intranet Files\"
    Jour = Range("Q3").NumberFormat = "yyymmdd"
    Client = Month(Now)
    Fichier = "Daily" & "_" & Jour & ".xls"
    If Dir(Chemin1 & Client, 16) = "" Then MkDir Chemin1 & Client
    ActiveWorkbook.SaveAs Chemin1 & Client & "\" & Fichier
     
     
    End Sub
    Ça fonctionne correctement sauf que le nom du fichier devient :
    Daily_Faux.xls
    Et donc pas avec la date du jour

    Est-ce que quelqu'un peut m'aider ???

    d'avance merci !

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Oui, NumberFormat s'applique pour une cellule ou une plage de cellule, non pour affecter un format à la valeur récupérée. Teste ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Jour = Format(Range("Q3"),"yyymmdd")

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Jour = Range("Q3").NumberFormat = "yyymmdd"
    cette expression (avec 2 égalités) est du type a = b = c
    et ne peut que renvoyer True ou False

    ceci, par exemple, te renverra True :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Command1_Click()
     a = 2
     b = 2
     c = -1
     MsgBox a = b = c
    End Sub

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 40
    Par défaut
    OK
    en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Jour = Format(Range("Q3"),"yyymmdd")
    j'obtiens le fameux message d'erreur sur le mot FORMAT:
    "Erreur de compilation
    Nombre d'arguments incorrect ou affectation de propriété incorrecte"

    ...

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ok. As-tu vérifié si la référence "Visual Basic for application" était validée dans le projet VBA -> Editeur VBA -> Outils -> Références
    Je viens de tester avec now() et j'ai un résultat "abracadabrantesque". Tu as quelque chose de cohérent, toi ?
    Teste ça, sans Format
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Jour = Right(Year(Cells(2, 1)), 3) & Right("0" & Month(Cells(2, 1)), 2) & Right("0" & Day(Cells(2, 1)), 2)

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 40
    Par défaut
    ça fonctionne, mais voici le résultat : Daily_8991230.xls

    quant aux références, tout y est

    en cherchant sur différents forums, j'ai également trouvé le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    D = Day(Now) & Month(Now) & Year(Now)
     
     ActiveWorkbook.SaveAs Filename:="C:\2008\SALES RESULTS\Intranet Files\Daily" & "_" & D & ".xls"
    ça fonctionne, mais j'aimerais vraiment avoir ma date au format "yyyymmdd"

    comment ce fait que dans un fichier mon code initial fonctionne correctement et que dans un autre il bug sur le mot "format" ?
    la encore j'ai vérifié les référence entres les deux classeurs et j'ai fait en sorte que ce soient les mêmes

    ...

  7. #7
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Format(Now, "ddmm") & Right(Format(Now, "yyyy"), 3)

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

Discussions similaires

  1. Probleme UPDATE avec date
    Par shub dans le forum Access
    Réponses: 7
    Dernier message: 21/06/2006, 13h39
  2. [debutant]Probleme de requete avec date
    Par shub dans le forum Access
    Réponses: 9
    Dernier message: 12/05/2006, 10h01
  3. re: probleme avec date()
    Par puppusse79 dans le forum Access
    Réponses: 1
    Dernier message: 24/03/2006, 16h40
  4. Probleme Sauvegarde-Restauration avec MySql Administrator
    Par Christophe Charron dans le forum Administration
    Réponses: 7
    Dernier message: 26/07/2005, 08h25
  5. [C#] Requête MS Access (Problème avec Date)
    Par Erakis dans le forum ASP.NET
    Réponses: 4
    Dernier message: 16/02/2005, 22h54

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