Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro Enregistrer Sous une partie d'une feuille

  • Initiateur de la discussion Initiateur de la discussion Hellowa
  • 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 !

H

Hellowa

Guest
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, 🙂
 
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+
 
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
 
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+
 
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:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

D
Réponses
5
Affichages
1 K
débutantplus
D
T
Réponses
8
Affichages
2 K
M
Réponses
4
Affichages
2 K
Mbersier18
M
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…