Save as dans une macro MS Excel
Caillou
-
LePierre Messages postés 249 Statut Membre -
LePierre Messages postés 249 Statut Membre -
Bonjour,
J'ai une question qui peut paraitre un peu stupide, je suis en train de creer une macro dans un fichier MS Excel qui va effectuer quelques commandes, la derniere de ces commandes est de faire un save as et d'aller enregistrer ce fichier dans un répertoire donné. Jusque la tout va bien, par contre j'aimerais que le fichier "s'auto-nomme" et que l'utilisateur ne soit pas obligé de nommer lui meme le fichier. La raison c'est qu'il sera plus facile de les classer par la suite
Les informations nécessaires pour le nom se trouve dans 3 cellules différentes dans mon fichier excel. Il s'agit de la date, du # du client ainsi que son nom.
Est-ce possible de faire ca soit de auto-nommer un fichier en fonction d'infos déja disponibles dans un fichier?
Merci de votre réponse
Caillou
J'ai une question qui peut paraitre un peu stupide, je suis en train de creer une macro dans un fichier MS Excel qui va effectuer quelques commandes, la derniere de ces commandes est de faire un save as et d'aller enregistrer ce fichier dans un répertoire donné. Jusque la tout va bien, par contre j'aimerais que le fichier "s'auto-nomme" et que l'utilisateur ne soit pas obligé de nommer lui meme le fichier. La raison c'est qu'il sera plus facile de les classer par la suite
Les informations nécessaires pour le nom se trouve dans 3 cellules différentes dans mon fichier excel. Il s'agit de la date, du # du client ainsi que son nom.
Est-ce possible de faire ca soit de auto-nommer un fichier en fonction d'infos déja disponibles dans un fichier?
Merci de votre réponse
Caillou
A voir également:
- Save as dans une macro MS Excel
- Save as pdf office 2007 - Télécharger - Bureautique
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
- Word et excel gratuit - Guide
1 réponse
bonjour
soit tes données pour le nom de fichier en A2, B2 et C2.
Voici un petit bout de code qui devrait te convenir :
à plus
soit tes données pour le nom de fichier en A2, B2 et C2.
Voici un petit bout de code qui devrait te convenir :
Sub Enregistrer()
Chemin = ActiveWorkbook.Path
DateFich = Cells(2, 1).Value
An = CStr(Year(DateFich))
Mois = CStr(Month(DateFich))
Jour = CStr(Day(DateFich))
DateFich = An & "-" & Mois & "-" & Jour
RefClient = CStr(Cells(2, 2).Value)
NomClient = Cells(2, 3).Value
ActiveWorkbook.SaveAs Filename:=Chemin & "\" & DateFich & "_" & _
RefClient & "_" & NomClient & ".xls", FileFormat _
:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False
End Sub
à plus
----------------------------------------------
Sub test()
ActiveWorkbook.ActiveSheet.Select
ActiveWorkbook.ActiveSheet.Copy
Calculate
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Chemin = ActiveWorkbook.Path
DateFich = Cells(2, 1).Value
An = CStr(Year(DateFich))
Mois = CStr(Month(DateFich))
Jour = CStr(Day(DateFich))
DateFich = An & "-" & Mois & "-" & Jour
RefClient = CStr(Cells(2, 2).Value)
NomClient = Cells(2, 3).Value
ChDir "C:\Documents and Settings\caillou\Mes documents\Discount Request Form"
ActiveWorkbook.SaveAs Filename:=Chemin & "\" & DateFich & "_" & _
RefClient & "_" & NomClient & ".xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False
End Sub
----------------------------
j'aimerais qu'il aille s'enregistrer sous ChDir "C:\Documents and Settings\caillou\Mes documents\Discount Request Form", aussi est-ce que le user caillou peut créer probleme lorsque j'enverai mon ficher contenant la macro a divers users car lorsqu'ils se serviront de la macro j'aimerais que le fichier aille s'enregistrer sous leur lecteur C dans le document Discount Request Form qu'ils auront créé préalablement
Autre question, dans le code j,ai mis calculate car mon fichier aura des formules et ensuite il va faire son copie valeur, mais je veux m'assurer que le calcul sera fait avant de faire son copie valeur, le recalcul prend 5-10secondes, suis-je mieux de mettre un "wait" de quelques secondes et ensuite faire en sorte que la macro continue. Si oui est-ce que tu connais le code pour mettre ce "wait"
Merci beaucoup!
Caillou
remplace dans ton code :
par ceci :
pour ta deuxième question, plutôt qu'un wait utilise : DoEvents
à plus
-----------------------------------------------------------
ActiveWorkbook.ActiveSheet.Select
ActiveWorkbook.ActiveSheet.Copy
Calculate
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Chemin = ActiveWorkbook.Path
DateFich = Cells(2, 1).Value
An = CStr(Year(DateFich))
Mois = CStr(Month(DateFich))
Jour = CStr(Day(DateFich))
DateFich = An & "-" & Mois & "-" & Jour
RefClient = CStr(Cells(2, 2).Value)
NomClient = Cells(2, 3).Value
Chemin2 = "C:\Documents and Settings\caillou\Mes documents\Discount Request Form"
ActiveWorkbook.SaveAs Filename:=Chemin2 & "\" & DateFich & "_" & _
RefClient & "_" & NomClient & ".xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False
-------------------
encore une fois merci
Caillou
es-tu certain du nom de tes répertoires inscrits dans la définition de "Chemin2" ?
à plus