Macro Enregistrer Sous une partie d'une feuille

Hellowa

XLDnaute Junior
Bonjour à tous, bonjour le forum
Je cherche désespérément comment enregistrer sous une partie de ma feuille.
J'explique mon problème:
J'ai créé une fiche devis qui simplifie le remplissage, avec plein de macros toussa toussa ( cf piècejointe)
Seulement j'aimerai que les utilisateurs, une fois leur devis terminé n'aient qu'à cliquer sur le bouton créé nommé "Enregistrer" pour que seule la partie nécéssaire du devis soit enregistrée avec comme nom: "Nom_client-Date-reference".


https://www.excel-downloads.com/threads/macro-enregistrer-sous.16005/
Mon fichier excel
Cijoint.fr - Service gratuit de dépôt de fichiers

Merci d'avance, :)
 

mromain

XLDnaute Barbatruc
Re : Macro Enregistrer Sous une partie d'une feuille

bonjour,

voici une macro à adapter :
Code:
Sub test()

Dim newWbk As Workbook, zoneEnregistree As Range, dossierSauvegarde As String, nomFichier As String

'initialiser la zone à copier et les chemin et nom d'enregistrement
With ThisWorkbook.Sheets("DEVIS")
    Set zoneEnregistree = .Range("A1:H57")
    dossierSauvegarde = "E:\aMiki\XLS\test"
    nomFichier = .Range("E12").Text & "-" & .Range("E11").Text & "-" & .Range("E10").Text
End With

'créer un nouveau classeur
Set newWbk = Application.Workbooks.Add
'ne garder qu'une feuille sur le nouveau classeur
While newWbk.Sheets.Count > 1
    Application.ScreenUpdating = False: newWbk.Sheets(1).Delete: Application.ScreenUpdating = True
Wend

'copier la zone dans le nouveau classeur
zoneEnregistree.Copy newWbk.Sheets(1).Range("A1")

'enregistrer et fermer le nouveau classeur
newWbk.SaveAs dossierSauvegarde & "\" & nomFichier
newWbk.Close True

End Sub

a+
 

Hellowa

XLDnaute Junior
Re : Macro Enregistrer Sous une partie d'une feuille

Wow, c'est énorme!!!
Merci mille fois!
Par contre il me met un petit message d'erreur du genre "voulez vous supprimer les cellules vides?"
avec comme options: delete ou ignore
 

mromain

XLDnaute Barbatruc
Re : Macro Enregistrer Sous une partie d'une feuille

bonjour

j'avais fait une petite erreur, voici le code modifié :
Code:
Sub test()

Dim newWbk As Workbook, zoneEnregistree As Range, dossierSauvegarde As String, nomFichier As String

'initialiser la zone à copier et les chemin et nom d'enregistrement
With ThisWorkbook.Sheets("DEVIS")
    Set zoneEnregistree = .Range("A1:H57")
    dossierSauvegarde = "E:\aMiki\XLS\test"
    nomFichier = .Range("E12").Text & "-" & .Range("E11").Text & "-" & .Range("E10").Text
End With

'créer un nouveau classeur
Set newWbk = Application.Workbooks.Add
'ne garder qu'une feuille sur le nouveau classeur
While newWbk.Sheets.Count > 1
    Application.[B][COLOR=Red]DisplayAlerts[/COLOR][/B]= False: newWbk.Sheets(1).Delete: Application.[B][COLOR=Red]DisplayAlerts [/COLOR][/B]= True
Wend

'copier la zone dans le nouveau classeur
zoneEnregistree.Copy newWbk.Sheets(1).Range("A1")

'enregistrer et fermer le nouveau classeur
newWbk.SaveAs dossierSauvegarde & "\" & nomFichier
newWbk.Close True

End Sub

a+
 

vbacrumble

XLDnaute Accro
Re : Macro Enregistrer Sous une partie d'une feuille

Bonjour à tous


mromain: je propose une petite astuce avec ton code ;)

(Avec cette syntaxe, un classeur d'une seule feuille est créé )

Code:
Sub test()
Dim newWbk As Workbook, zoneEnregistree As Range, dossierSauvegarde$, nomFichier$
'initialiser la zone à copier et les chemin et nom d'enregistrement
With ThisWorkbook.Sheets("DEVIS")
    Set zoneEnregistree = .Range("A1:H57")
    dossierSauvegarde = "E:\aMiki\XLS\test"
    nomFichier = .Range("E12").Text & "-" & .Range("E11").Text & "-" & .Range("E10").Text
End With
[COLOR="Blue"]'créer un nouveau classeur
Set newWbk = Workbooks.Add(xlWBATWorksheet)[/COLOR]

'copier la zone dans le nouveau classeur
zoneEnregistree.Copy newWbk.Sheets(1).Range("A1")

'enregistrer et fermer le nouveau classeur
newWbk.SaveAs dossierSauvegarde & "\" & nomFichier
newWbk.Close True
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 668
Messages
2 090 726
Membres
104 639
dernier inscrit
torrento