Script VB pour enregistrer un fichier Excel dans un nouveau dossier

  • Initiateur de la discussion Initiateur de la discussion ahu
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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.
 
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
 
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?
 
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?
 
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
 
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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
677
Réponses
32
Affichages
2 K
Retour