Il faudrait utiliser le macro recorder, cela te donnerait une idée du code généré, qui peut être optimisé à la main par la suite.Par exemple :
Menu Outils | Macros | Nouvelle Macro par exemple Macro1
puis tu crées un classeur , tu l'enregistres sous un nom xyz.xls
puis Outils | Macros | Arrêter l'enregistrement
Ceci aboutit à qqch comme
Sub Macro1()
ChDir "C:\Transfert"
ActiveWorkbook.SaveAs Filename:="C:\Transfert\Classeur1234.xls", FileFormat _
:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False
End Sub
|
qui "optimisé" à la main peut devenir qqch comme
Sub Sauver()
Application.DisplayAlerts=False
ActiveWorkbook.SaveAs Filename:="C:\Transfert\Classeur1234.xls"
Application.DisplayAlerts = True
End Sub
|
ou encore ,avec une gestion d'erreur sommaire, ici si le dossier n'existe pas
Option Explicit
Sub Tst()
SauverFichier "C:\Transfert\Essai\Classeur_001.xls"
End Sub
Private Function SauverFichier(ByVal NomDuFichier As String)
Dim Dossier As String
On Error GoTo erreur
Application.DisplayAlerts = False
Dossier = Left(NomDuFichier, InStrRev(NomDuFichier, "\" ))
ChDir Dossier
ActiveWorkbook.SaveAs Filename:=NomDuFichier
Application.DisplayAlerts = True
Exit Function
erreur:
If Err.Number = 76 Then
MkDir Dossier
Resume Next
End If
End Function
|
Message édité par kiki29 le 08-12-2006 à 09:09:10