Récupérer une date sous excel

Bonjour, je suis débutant en VB et j'ai un petit soucis, je voudrais pouvoir enregistrer mon classeur sous format .xls, tout en l'enregistrant sous la date du jour.
C'est à dire JJ/MM/YYYY.xls
Pour cela j'ai écris le programme qui suit mais il le save de la facon MM/YYYY:

ActiveWorkbook.SaveAs Filename:="U:\stagiaires\taittinger\rapport sur excel\Rapport\Rapport_" & Evaluate("=TEXT(TODAY(),""MMYYYY"")") & ".xls"

COMMENT FAIRE??????

Merci

3 réponses

  1. Perso j'ai pris la solution de mettre la date du jour dans une varaible et ensuite de mettre la variable dans le nom de mon fichier ça marche très bien.

    Dim D as String
    
    D= Day(Now) & "_" & Month(Now) & "_" Year(Now)
    ActiveWorkbook.SaveAs Filename:="U:\stagiaires\taittinger\rapport sur excel\Rapport\Rapport_" & D & ".xls"
    
    


    Attention le caractère / est interdits dans les noms de fichier
    1. Je te remercie biloue, ca marche trés bien.
      Mais tu vois je voudrais lancer cette macro automatiquement, c'est à dire que moi j'ai pensé que si je mettais une valeur logique (=1) dans une cellule, elle le ferai automatiquement.Mais non

      Moi j'ai écris ce prog, mais malheureusement,il fo ke je fasse à chaque fois outils, macro, macro puis exécuter.
      COMMENT FAIRE????

      Sub EnregRapport()

      Dim D As String
      D = Day(Now) & Month(Now) & Year(Now)

      If Range("C2").Value >= 1 Then

      ActiveWorkbook.SaveAs Filename:="U:\stagiaires\taittinger\rapport sur excel\Rapport\Rapport_" & D & ".xls"

      End If
      End Sub
      ______________________________________________________

      A mon avis il faut écrire, si C2 passe de 0 à 1(front montant) alors faire

      Merci
  2. Je te remercie biloue, ca marche trés bien.
    Mais tu vois je voudrais lancer cette macro automatiquement, c'est à dire que moi j'ai pensé que si je mettais une valeur logique (=1) dans une cellule, elle le ferai automatiquement.Mais non

    Moi j'ai écris ce prog, mais malheureusement,il fo ke je fasse à chaque fois outils, macro, macro puis exécuter.
    COMMENT FAIRE????

    Sub EnregRapport()

    Dim D As String
    D = Day(Now) & Month(Now) & Year(Now)

    If Range("C2").Value >= 1 Then

    ActiveWorkbook.SaveAs Filename:="U:\stagiaires\taittinger\rapport sur excel\Rapport\Rapport_" & D & ".xls"

    End If
    End Sub
    ______________________________________________________

    A mon avis il faut écrire, si C2 passe de 0 à 1(front montant) alors faire

    Merci
    1. Je pense qu'il faut que tu utilise l'évènement de ta cellule sur ta feuille excel.

      place le code suivant sur le code vba de la feuille concernée

      Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If Target.Column = "x" and target.row = "y" Then ' remplacer "x" par le numéro de la colonne et "y" numéro de la colonne
      
           If Range("C2").Value >= 1 Then 
               MsgBox "Coucou" ' à remplacer par l'appel à la macro
           End if
        End If
      End Sub


      Voilà
      1. comment je fais pour placer le code que tu ma donné sur le code vba de la feuille concernée.Dans l'éditeur de VBA tu vas dans l'arborescence de ton projet et tu choisi Feuille 1? C ca non?

        Et quand tu dis :

        If Target.Column = "x" And Target.Row = "y" Then ' remplacer "x" par le numéro de la colonne et "y" numéro de la colonne

        X c'est le numéro de la ligne et Y est le numéro de ma colonne.

        Et quand tu dis :

        MsgBox "coucou" ' à remplacer par l'appel à la macro

        L'appel à la macro c'est le nom de la macro?

        excuse moi je suis débutant.

        Merci beaucoup
      2. bonjour,

        indépendamment de ton besoin d'appel automatique de ta procédure, je te conseille de mettre les date à l'envers : AAAAMMJJ pour bénéficier de l'ordre chronologique lors d'un tri alpha sur les noms de fichiers

        cordialement
      3. @JvDoest ce ke tu sais comment faire appelle à une macros,
        moi j'ai fais msgbox"sub enregcellule" mais ca marche pas
      4. @JvDotu fais call nomdelaproc

        s'il y a des paramètres à passer, tu les mets entre parenthèses dans l'ordre attendu pas la proc