enregistrer une fichier avec une macro

garrec

XLDnaute Occasionnel
Bonjour

J'ai une macro qui m'enregistre un fichier sous format CSV avec comme titre "confirmation trade & Veille"

Le probleme c'est que j'ai crée une fonction Veille qui me renvoie une date (le dernier jour ouvré)

Donc dans mon renommage de fichier je ne vois pas pourquoi ma Sub ne prend pas en compte ma fonction Veille

Code:
Sub EnregistrerCSV()
'
' EnregistrerCSV Macro
'
Dim Veille As Date

'
    ChDir "C:\Users\e.garrec\Desktop"
    Sheets("Template ordre titre vif et OPC").Select
    Sheets("Template ordre titre vif et OPC").Copy
    ActiveWindow.SmallScroll Down:=-6
    Range("E16").Select
    ActiveWorkbook.SaveAs Filename:="C:\Users\e.garrec\Desktop\confirmation trade & Veille.csv", _
        FileFormat:=xlCSV, CreateBackup:=False
    Windows("Template ordre titre vif et OPCVM.xls").Activate
    
     Windows("confirmation trade & Veille.csv").Activate
    ActiveWindow.Close
    ActiveWindow.ScrollColumn = 7
    ActiveWindow.ScrollColumn = 6
    ActiveWindow.ScrollColumn = 5
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 1
    Range("A1").Select
    
  End Sub
    
    Private Function Veille() As Date
Dim d As Byte
 
d = DatePart("w", Date, vbSunday)                'Si Date est Dimanche ou Lundi, on prend Vendredi comme étant la veille. 'Sinon, on prend j-1
Veille = Date - IIf(d <= 2, d + 1, 1)
End Function


Quelqu'un voit il une solution

Merci

;)
 

garrec

XLDnaute Occasionnel
Re : enregistrer une fichier avec une macro

Bonjour

Merci francedemo

donc ma macro serait ça
Code:
Sub EnregistrerCSV()
 '
 ' EnregistrerCSV Macro
 '
 Dim Veille As Date
 
'
     ChDir "C:\Users\e.garrec\Desktop"
     Sheets("Template ordre titre vif et OPC").Select
     Sheets("Template ordre titre vif et OPC").Copy
     ActiveWindow.SmallScroll Down:=-6
     Range("E16").Select
   
         
         ActiveWorkbook.SaveAs Filename:="C:\Users\e.garrec\Desktop\confirmation trade " & Veille & ".csv", FileFormat:=xlCSV, CreateBackup:=False
     Windows("Template ordre titre vif et OPCVM.xls").Activate
     
     Windows("confirmation trade & Veille.csv").Activate
     ActiveWindow.Close
     ActiveWindow.ScrollColumn = 7
     ActiveWindow.ScrollColumn = 6
     ActiveWindow.ScrollColumn = 5
     ActiveWindow.ScrollColumn = 4
     ActiveWindow.ScrollColumn = 3
     ActiveWindow.ScrollColumn = 2
     ActiveWindow.ScrollColumn = 1
     Range("A1").Select
     
  End Sub
     
    Private Function Veille() As Date
 Dim d As Byte
  
 d = DatePart("w", Date, vbSunday)                'Si Date est Dimanche ou Lundi, on prend Vendredi comme étant la veille. 'Sinon, on prend j-1
 Veille = Date - IIf(d <= 2, d + 1, 1)
 End Function

mais ça ne fonctionne pas ça me met erreur 1004 fichier inaccesible et ça me surligne en jaune cette ligne

ActiveWorkbook.SaveAs Filename:="C:\Users\e.garrec\Desktop\confirmation trade " & Veille & ".csv", FileFormat:=xlCSV, CreateBackup:=False

??

Merci :)
 

francedemo

XLDnaute Occasionnel
Re : enregistrer une fichier avec une macro

re,
je pense que ta variable "Veille" n'est pas validée lors de ta procédure.
plutôt qu'une fonction séparée, perso, je mettrais le code "Veille" directement dans ta macro, tu serais certain que "Veille" serait calculée..

ça donnerait:
Code:
Sub EnregistrerCSV()
 '
 ' EnregistrerCSV Macro
 '
 Dim Veille As Date
 Dim d As Byte
  
Veille = ......'là tu mets ton calcul de date
     
ChDir "C:\Users\e.garrec\Desktop"
     Sheets("Template ordre titre vif et OPC").Select
     Sheets("Template ordre titre vif et OPC").Copy
     ActiveWindow.SmallScroll Down:=-6
     Range("E16").Select
   
         
         ActiveWorkbook.SaveAs  Filename:="C:\Users\e.garrec\Desktop\confirmation trade & " & Veille  & ".csv", FileFormat:=xlCSV, CreateBackup:=False
     Windows("Template ordre titre vif et OPCVM.xls").Activate
     
     Windows("confirmation trade & " & Veille & ".csv").Activate
     ActiveWindow.Close
     ActiveWindow.ScrollColumn = 7
     ActiveWindow.ScrollColumn = 6
     ActiveWindow.ScrollColumn = 5
     ActiveWindow.ScrollColumn = 4
     ActiveWindow.ScrollColumn = 3
     ActiveWindow.ScrollColumn = 2
     ActiveWindow.ScrollColumn = 1
     Range("A1").Select
     
  End Sub

pas sur, mais à tester
à+
 

Discussions similaires

Statistiques des forums

Discussions
312 213
Messages
2 086 302
Membres
103 174
dernier inscrit
OBUTT