Question sur l'enregistrement d'un classeur via une macro

zuli3n

XLDnaute Occasionnel
Bonjour le forum et tout mes meilleurs à vous pour cette nouvelle année ;)

J'ai une petite question à vous poser :confused:

Je me sert un bout de code en VBA, ci-dessous, pour sauvegarder mon classeur.
Mon soucis c'est que je ne veux pas basculer sur le classeur sauvegarder, donc pouvoir resté sur classeur initial après le ".SaveAs"

Code:
Private Sub CommandButton2_Click()

Dim PatchEtNomXLS As String
Dim Bureau As String
Bureau = CreateObject("WScript.Shell").SpecialFolders("Desktop")

NumNDFxls = Sheets("NDF").Range("J2").Value
PatchEtNomXLS = Bureau & "\" & "Note de frais N° " & NumNDFxls

Application.DisplayAlerts = False

With ActiveWorkbook
   .SaveAs Filename:=PatchEtNomXLS, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End With

Application.DisplayAlerts = True

Unload UserForm

End Sub

Est-ce possible ?

En vous remerciant,
Cordialement.
 

zuli3n

XLDnaute Occasionnel
Re : Question sur l'enregistrement d'un classeur via une macro

Bonjour Pierrot93,

Merci pour ta réponse, oui je pense que tu as bien compris, cependant quand je remplace "SaveAs" par "SaveCopyAs" j'ai un message d'erreur, apparemment c'est le "FileFormat:=xlOpenXMLWorkbookMacroEnabled" qui pose problème, j'ai donc essayé sans et c'est pareil. Le SaveCopyAs ne fait plus fonctionner la macro, je vais faire d'autre tests, si vous avez une idée je suis preneur :)

En vous remerciant,
Cordialement.
 

zuli3n

XLDnaute Occasionnel
Re : Question sur l'enregistrement d'un classeur via une macro

Re Pierrot93,

J'ai pu faire fonctionner ma macro en rusant via votre exemple sous 2010 :

Code:
With ActiveWorkbook
.SaveCopyAs Filename:=PatchEtNomXLS & ".xlsm"   
End With

Merci à vous Pierrot93

Cordialement.
 

MJ13

XLDnaute Barbatruc
Re : Question sur l'enregistrement d'un classeur via une macro

Bonjour Zuli, Pierrot

TU peux aussi faire des sauvegardes avec la date et l'heure:

Code VBA:
Sub SauveCopieDateHeure()
ActiveWorkbook.SaveCopyAs (ThisWorkbook.Path & "\" & ActiveWorkbook.Name & " " & Format(Now, "DD_MM_YY hh_mm_ss"))
End Sub
 

le yonnais

XLDnaute Junior
Re : Question sur l'enregistrement d'un classeur via une macro

- bonsoir , la macro qui as été mis en place si je comprends bien sert a enregistrer un classeur tout en restant dessus a travailler sans basculer sur la page qui permet de le sauvegarder "classiquement" et tout ceci avec un bouton commande ? j'aurais voulu savoir si , il est possible avec ce bouton commande d'enregistrer directement sur le bureau windows ?
 

Staple1600

XLDnaute Barbatruc
Re : Question sur l'enregistrement d'un classeur via une macro

Bonsoir à tous

le yonnais
Bureau tu dis?
bah, il y avait ceci dans le premier message, non? ;)
Code:
Dim PatchEtNomXLS As String
Dim Bureau As String
Bureau = CreateObject("WScript.Shell").SpecialFolders("Desktop")
je te laisse deviner quoi en faire pour la suite ;)

EDITION:Bing! Bonsoir Pierrot93
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Question sur l'enregistrement d'un classeur via une macro

Re, salut Michel:)

j'aurais voulu savoir si , il est possible avec ce bouton commande d'enregistrer directement sur le bureau windows ?

pour enregistrer la copie sur le bureau...
Code:
Dim chemin As String
chemin = CreateObject("WScript.Shell").specialFolders("Desktop")
ActiveWorkbook.SaveCopyAs chemin & "\classeur2.xlsm"
 

MJ13

XLDnaute Barbatruc
Re : Question sur l'enregistrement d'un classeur via une macro

Re , bonjour le Yonnais, Jean-Marie

j'aurais voulu savoir si , il est possible avec ce bouton commande d'enregistrer directement sur le bureau windows ?

Oui, il suffit de remplacer Thisworkbook.path par le chemin du bureau à mettre entre parenthèses. Ou prendre la solution de Jean-Marie :) ou de Pierrot :).
 

MJ13

XLDnaute Barbatruc
Re : Question sur l'enregistrement d'un classeur via une macro

Re

Ok Jean-Marie, j'avais point vu :eek:.

Sinon mon ancien code avait un problème, vu que l'extension n'était pas prise en compte, je préfère ceux-ci:

Code:
Sub SauveCopieDateHeure()
 ActiveWorkbook.SaveCopyAs (ThisWorkbook.Path & "\" & Format(Now, "DD_MM_YY hh_mm_ss") & " " & ActiveWorkbook.Name)
 End Sub
 Sub SauveCopieDateHeure_Vers_Bureau_Autre_Session()

Ou pour le bureau d'une autre session:

Code:
ActiveWorkbook.SaveCopyAs ("C:\Users\[B]NOMUSER[/B]\Desktop" & "\" & Format(Now, "DD_MM_YY hh_mm_ss") & " " & ActiveWorkbook.Name)
 End Sub
 

le yonnais

XLDnaute Junior
Re : Question sur l'enregistrement d'un classeur via une macro

ok , pas de soucis , je m'occupe de ça , pour les lunettes , un petit peu de mansuétude s.v.p , je vous rappelle , messieurs , que par rapport a vous , en ce qui concerne excel et plus particuliérement les macros , je n'y connais absolument rien du tout , je suis avant tout présent sur le forum pour apprendre auprés de vous qui êtes des experts en la matiére . En parlant de ça , j'ai un petit soucis a vous soumettre qui n'a rien a voir : quand j'additionne un résultat d'une cellule d'une feuille de mon classeur : 3,14 a celui d'une cellule de la feuille suivante : 1,52 ; le résultat qui m'est donné est : 4,65 ; alors qu'il devrait être : 4,66 ; j'ajoute que les cellules sont au format " nombre " avec 2 chiffres aprés la décimale .
- merci d'avance a vous .
 

Pierrot93

XLDnaute Barbatruc
Re : Question sur l'enregistrement d'un classeur via une macro

Re,

vous soumettre qui n'a rien a voir : quand j'additionne un résultat d'une cellule d'une feuille de mon classeur : 3,14 a celui d'une cellule de la feuille suivante : 1,52 ; le résultat qui m'est donné est : 4,65 ; alors qu'il devrait être : 4,66 ; j'ajoute que les cellules sont au format " nombre " avec 2 chiffres aprés la décimale .

A voir la valeur exacte des cellules, regarde dans la barre de formule.... un format à 2 décimales arrondi les valeurs réelles....
 

Discussions similaires

Réponses
3
Affichages
545

Statistiques des forums

Discussions
312 115
Messages
2 085 443
Membres
102 889
dernier inscrit
monsef JABBOUR