Script VB pour enregistrer un fichier Excel dans un nouveau dossier

ahu

XLDnaute Nouveau
Bonjour je suis débutant et donc très mauvais en VB.
Hier j'ai récupérer sur internet un VBscipt me permettant d'ouvrir un fichier excel, d'executer une macro, de sauvegarder et de fermer mon fichier:

Dim oXL
Set oXL = WScript.CreateObject("EXCEL.application")
oXL.Visible = True
set Wk = oXL.workbooks.open("c:\\AAA.xls")
oxl.run "MAJ_macro"
Wk.save
wk.close
oxl.quit

Set oXL = Nothing


cela fonctionne parfaitement, cependant j'aimerai que mon script sauvegarde le fichier dans un nouveau dossier dont le nom est la date du jour.

Par exemple si je lance le script aujourd'hui (14/10/2008 11:20), j'aimerai que le fichier soit enregistré, une fois la macro exécutée, dans un dossier dont le nom serait 200810141120 ou un truc dans le genre.
Est ce possible?
Faut il intégrer cela directement dans la macro dans Excel?

Merci pour votre aide.
 

Staple1600

XLDnaute Barbatruc
Re : Script VB pour enregistrer un fichier Excel dans un nouveau dossier

Bonjour


Tu parles bien d'un dossier ?
Code:
Sub créationdossier()
Dim NOMDOSSIER$
NOMDOSSIER = Format(Date, "ddmmyyyy") & "_" & Format(Time, "hhmmss")
MkDir ThisWorkbook.Path & "\" & NOMDOSSIER
End Sub
 

ahu

XLDnaute Nouveau
Re : Script VB pour enregistrer un fichier Excel dans un nouveau dossier

Bonjour


Tu parles bien d'un dossier ?
Code:
Sub créationdossier()
Dim NOMDOSSIER$
NOMDOSSIER = Format(Date, "ddmmyyyy") & "_" & Format(Time, "hhmmss")
MkDir ThisWorkbook.Path & "\" & NOMDOSSIER
End Sub

oui je parle bien d'un nouveau dossier.
Je ne comprends pas dans quel repertoire va se créer ton nouveau dossier?
Et ensuite comment je peux sauvegarder mon fichier dans ce nouveau dossier?
 

ahu

XLDnaute Nouveau
Re : Script VB pour enregistrer un fichier Excel dans un nouveau dossier

Re

La macro de mon précédent message crée un sous-répertoire à la racine du répertoire contentant le classeur actif (contenant la macro)

oui je viens de tester cela créer bien un nouveau dossier dans le repertoire contenant le classeur: c'est parfait.
PAr contre peux tu m'indiquer comment sauvegarder mon document dans ce nouveau dossier?
 

Staple1600

XLDnaute Barbatruc
Re : Script VB pour enregistrer un fichier Excel dans un nouveau dossier

Re

ATTENTION:

Supprimes d'abord le dossier que tu viens de créer

puis teste cette macro.

Code:
Sub créationdossieretsauve()
Dim NOMDOSSIER$, Chemin$
NOMDOSSIER = Format(Date, "ddmmyyyy") & "_" & Format(Time, "hhmmss")
MkDir ThisWorkbook.Path & "\" & NOMDOSSIER
Chemin = ThisWorkbook.Path & "\" & NOMDOSSIER & "\"
ThisWorkbook.SaveCopyAs Chemin & "toto" & ".xls"
End Sub

Il va falloir ajouter une fonction qui teste l'existence du dossier au préalable
 

Staple1600

XLDnaute Barbatruc
Re : Script VB pour enregistrer un fichier Excel dans un nouveau dossier

Re



Dans le cas d'une copie dans la même seconde ;)
Code:
Sub cds()
Dim NOMDOSSIER$, Chemin$
NOMDOSSIER = Format(Date, "ddmmyyyy") & "_" & Format(Time, "hhmmss")
If Dir(ThisWorkbook.Path & "\" & NOMDOSSIER, vbDirectory) = "" Then
MkDir ThisWorkbook.Path & "\" & NOMDOSSIER
End If
Chemin = ThisWorkbook.Path & "\" & NOMDOSSIER & "\"
ThisWorkbook.SaveCopyAs Chemin & "toto" & ".xls"
End Sub
 

ahu

XLDnaute Nouveau
Re : Script VB pour enregistrer un fichier Excel dans un nouveau dossier

Re



Dans le cas d'une copie dans la même seconde ;)
Code:
Sub cds()
Dim NOMDOSSIER$, Chemin$
NOMDOSSIER = Format(Date, "ddmmyyyy") & "_" & Format(Time, "hhmmss")
If Dir(ThisWorkbook.Path & "\" & NOMDOSSIER, vbDirectory) = "" Then
MkDir ThisWorkbook.Path & "\" & NOMDOSSIER
End If
Chemin = ThisWorkbook.Path & "\" & NOMDOSSIER & "\"
ThisWorkbook.SaveCopyAs Chemin & "toto" & ".xls"
End Sub

c'est parfait, je te remercie pour ton aide, tu m'a bien fait avancer;
Merci beaucoup
 

Staple1600

XLDnaute Barbatruc
Re : Script VB pour enregistrer un fichier Excel dans un nouveau dossier

Re




En complément une fonction qui peut servir

Code:
Function ESTDOSSIER(Chemin$) As Boolean
ESTDOSSIER = IIf(Dir(Chemin, vbDirectory) <> "", True, False)
End Function
Sub exemple_utilisation()
MsgBox ESTDOSSIER("C:\Temp")
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 222
Messages
2 086 395
Membres
103 200
dernier inscrit
pascalgip