sauvegarder une feuille d'un classeur vers un dossier à creer

mouss5174

XLDnaute Nouveau
Bonjour,

J'ai utiliser un code vba trouver sur ce forum le code marche bien une fenetre de sauvegarde se creer je dois rentrer mon nouveau fichier et je clique ok jusque la pas de souccis;
par contre dans cette fenetre il y "annuler" et losrque je clique dessus cela me génère une erreur,
que doit je rajouter au code pour que cela arrete la procedure et ferme le nouveau fichier en cours de création.

Sub Test()
Dim newWbk As Workbook, feuilCal As Worksheet, pathMesDocuments As String, nomNewClasseur As String

'définir le chemin de MesDocuments
pathMesDocuments = "E:\aMiki\XLS\test"

'définir la feuille à copier
Set feuilCal = ThisWorkbook.Sheets("Calendrier")

'créer un nouveau classeur avec une seulle feuille
Set newWbk = Application.Workbooks.Add(xlWBATWorksheet)

'copier les cellules de la feuille "Calendrier"
feuilCal.Cells.Copy

'coller les valeurs dans le nouveau classeur, puis les formats, puis les largeurs de colonnes
newWbk.Sheets(1).Range("A1").PasteSpecial xlPasteValues
newWbk.Sheets(1).Range("A1").PasteSpecial xlPasteFormats
newWbk.Sheets(1).Range("A1").PasteSpecial xlPasteColumnWidths
Application.CutCopyMode = False

'récupérer le nom à donner au nouveau classeur
nomNewClasseur = InputBox("Nom du nouveau classeur :")

'sauvegarder le classeur et le fermer
newWbk.SaveAs pathMesDocuments & "\" & nomNewClasseur & ".xls"
newWbk.Close

cdt
thierry
 

job75

XLDnaute Barbatruc
Re : sauvegarder une feuille d'un classeur vers un dossier à creer

Bonsoir mouss5174,

Code:
'sauvegarder le classeur et le fermer
On Error Resume Next
newWbk.SaveAs pathMesDocuments & "\" & nomNewClasseur & ".xls"
newWbk.Close
Evite le bug si dans l'InputBox on clique sur Annuler ou si l'on y entre des caractères interdits.

A+
 

job75

XLDnaute Barbatruc
Re : sauvegarder une feuille d'un classeur vers un dossier à creer

Re,

Un peu plus élaboré :

Code:
'récupérer le nom à donner au nouveau classeur
1 nomNewClasseur = InputBox("Nom du nouveau classeur :")
If nomNewClasseur <> "" Then
  'sauvegarder le classeur et le fermer
  On Error Resume Next
  newWbk.SaveAs pathMesDocuments & "\" & nomNewClasseur & ".xls"
  If Err Then GoTo 1 's'il y a des caractères interdits
End If
newWbk.Close
A+
 

mouss5174

XLDnaute Nouveau
Re : sauvegarder une feuille d'un classeur vers un dossier à creer

bonjour,
je viens d'essayer ton code
mais cela m'indique erreur de compilation etiquette non définie avec Private Sub CommandButton2_Click() et GoTo1

ce que j'ai voulu faire c'est ouvrir un nouveaux fichier pour enrgistrer 2 feuilles du classeur sur lequel je travaile.
mon code marche
parcontre ce que je veut faire , c'est si quelqu'un clique sur annuler pour une raison ou une autre, cela ferme la boite de dialogue où il demande le nom du fichier et ferme le nouveaux fichier sans l'enregistrer.
l'ideal serait même que j'enregistre directement avec un nom defini et la date du jour(ex/ commande 04/04/2012)
avec confimation d'enregistrement


cdt
 

mouss5174

XLDnaute Nouveau
Re : sauvegarder une feuille d'un classeur vers un dossier à creer

slt job 75

juste une petite question sur le code

mon code me permet d'ouvrir un nouveau fichier afin de copier coller la feuille de mon classeur cela marche bien mais peut on garder la mise page total de cette derniere

car sur mon code la hauteur des ligne n'est pas respecter
je pourrait rajouter la hauteur manuelle de chaque ligne mais beaucoup differe

je pense au déplacement vers un nouveau fichier
@+
 

job75

XLDnaute Barbatruc
Re : sauvegarder une feuille d'un classeur vers un dossier à creer

Bonjour mouss5174,

Pour ne pas s'embêter avec les mises en forme, copier la feuille :

Code:
Sub Test()
Dim feuilCal As Worksheet, pathMesDocuments As String, nomNewClasseur As String

'définir le chemin de MesDocuments
pathMesDocuments = "E:\aMiki\XLS\test"
'pathMesDocuments = ThisWorkbook.Path 'pour tester facilement...

'définir la feuille à copier
Set feuilCal = ThisWorkbook.Sheets("Calendrier")
feuilCal.Visible = True 'si elle était masquée...

'créer un nouveau classeur avec une seule feuille
feuilCal.Copy

'transférer les valeurs (au cas où il y aurait des formules)
ActiveSheet.UsedRange = feuilCal.UsedRange.Value

'récupérer le nom à donner au nouveau classeur
1 nomNewClasseur = InputBox("Nom du nouveau classeur :")
If nomNewClasseur <> "" Then
  'sauvegarder le classeur
  On Error Resume Next
  ActiveWorkbook.SaveAs pathMesDocuments & "\" & nomNewClasseur & ".xls"
  If Err Then GoTo 1 's'il y a des caractères interdits
End If

'fermer le classeur
ActiveWorkbook.Close False

End Sub
A+
 

mouss5174

XLDnaute Nouveau
Re : sauvegarder une feuille d'un classeur vers un dossier à creer

bonjour je viens d'essayer le code
j'ai simplifier la methode d'enregistrement en donnant le nom et la date
l'enregistrement se bien mais ne garde pas les couleur
mais j'ai une erreur d'execution 424

Dim feuilcal As Worksheet, pathMesDocuments As String, nomNewClasseur As String
'chemin d'enregitrement du fichier
pathMesDocuments = "C:DOCUMENT\MOI"
'positionnement des feuilles
Set feuilcal = ThisWorkbook.Sheets("Feuil2")

'copier les cellules de la feuille
feuilcal.Copy
'coller les valeurs dans le nouveau classeur, puis les formats, puis les largeurs de colonnes
ActiveSheet.UsedRange = feuilcal.UsedRange.Value
'forcer le nom à donner au nouveau classeur
nomNewClasseur = "commande2" & " " & Format(Date, "dd mm yyyy")
'message de confirmation
rep = MsgBox("Votre base de données est sauvegardée sous le nom : " & nomNewClasseur, vbYes + vbInformation, "Copie sauvegarde classeur")
'sauvegarder le classeur et le fermer
activewokbook.SaveAs pathMesDocuments & "\" & nomNewClasseur & ".xls"
ActiveWorkbook.Close False
 

job75

XLDnaute Barbatruc
Re : sauvegarder une feuille d'un classeur vers un dossier à creer

Re,

Faites attention à la syntaxe, ceci n'est pas correct :

Code:
'activewokbook.SaveAs pathMesDocuments & "\" & nomNewClasseur & ".xls"
Ceci fonctionnera :

Code:
ActiveWorkbook.SaveAs pathMesDocuments & "\" & nomNewClasseur & ".xls"
Je ne vois pas pourquoi les couleurs ne seraient pas copiées, voir peut-être les MFC...

A+
 

job75

XLDnaute Barbatruc
Re : sauvegarder une feuille d'un classeur vers un dossier à creer

Bonjour mouss5174, le forum,

La perte de couleurs vient peut-être du fait que vous êtes sous Excel 2010 (.xlsm) et que vous enregistrez en .xls.

Si vous ne précisez pas l'extension, le fichier sera enregistré en .xlsx (Excel 2010) ou .xls (Excel 2003).

Par aiileurs il faut ajouter un contrôle d'erreur :

Code:
Sub Sauvegarde()
Dim feuilcal As Worksheet, pathMesDocuments As String, nomNewClasseur As String
'chemin d'enregitrement du fichier
pathMesDocuments = "C:\DOCUMENT\MOI"
'pathMesDocuments = ThisWorkbook.Path 'plus facile à tester...
'positionnement des feuilles
Set feuilcal = ThisWorkbook.Sheets("Feuil2")
'copier la feuille vers un nouveau document
feuilcal.Copy
'coller les valeurs
ActiveSheet.UsedRange = feuilcal.UsedRange.Value
'forcer le nom à donner au nouveau classeur
nomNewClasseur = "commande2" & " " & Format(Date, "dd mm yyyy")
'sauvegarder le classeur et le fermer
On Error Resume Next 'si le classeur a déjà été créé...
ActiveWorkbook.SaveAs pathMesDocuments & "\" & nomNewClasseur 'extension non précisée
'message de confirmation
MsgBox "Votre base de données " & IIf(Err, "n'est pas sauvegardée...", _
"est sauvegardée sous le nom : " & nomNewClasseur), vbYes + vbInformation, "Copie sauvegarde classeur"
ActiveWorkbook.Close False
End Sub
A+
 

superbog

XLDnaute Occasionnel
Re : sauvegarder une feuille d'un classeur vers un dossier à creer

bonjour,

Je viens de lire ce fil, c'est interessant mais comment faire pour créer ainsi plusieurs fichiers, un à partir de chaque feuille du classeur d'origine?
 

job75

XLDnaute Barbatruc
Re : sauvegarder une feuille d'un classeur vers un dossier à creer

Bonjour superbog,

Vous pouvez utiliser ce code en effet.

En ajoutant une boucle pour toutes les feuilles à traiter.

Et la MsgBox uniquement s'il y a une erreur...

Vous avez ouvert un fil sur ce sujet je crois, il vaut mieux y rester :)

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 145
Messages
2 085 759
Membres
102 965
dernier inscrit
Mael44