[VBA] Macro sauvegarde feuille d'un classeur

kohta

XLDnaute Occasionnel
Bonjour,
je dispose d'un classeur contenant plusieurs feuilles, et j'aimerais créer une macro permettant, à l'aide d'un controlButton, de sauver une des feuilles seule dans un nouveau tableur excel, avec si possible un nom de fichier spécifié.

Quelqu'un saurait comment procéder? :eek:

Merci pour votre soutient et bonne journée (ici pluvieuse) à tous
 

antha

XLDnaute Occasionnel
Re : [VBA] Macro sauvegarde feuille d'un classeur

Bonjour,

J'utilise cette macro pour sauvegarder une feuille dans un fichier que j'enregistre dans mes documents. Peut-être que cela te sera utile !


Code:
Sub sauv_fichier ()

Dim Service As String
Dim fichier As String
Dim Nom_f As String
Dim APH As String

Service = Sheets("Parametres").Cells(4, 3)
Nom_f = Service & " - Tableau de présences (" & ActiveSheet.Name & ") " & IIf(ActiveSheet.OptionButton1.Value = True, "previsionnel", "définitif")
APH = Environ("UserName")
Application.ScreenUpdating = False

ActiveSheet.Copy

fichier = "C:\Documents and Settings\" & APH & "\Mes Documents\" & Nom_f & ".xls"

ActiveWorkbook.SaveAs fichier

ActiveWorkbook.Close False

Application.ScreenUpdating = True

End Sub
 

kohta

XLDnaute Occasionnel
Re : [VBA] Macro sauvegarde feuille d'un classeur

Bonjour et merci pour ta réponse

Ton morceau de code à l'air de répondre parfaitement à mes attentes :D

Question?

Où places tu le sub?

Dans ThisWorkbook?
Et si tu avais le temps de m'expliquer brievement les grandes lignes du code pour que je puisse l'adapter, ce serait génial.

Merci encore

Kohta
 

antha

XLDnaute Occasionnel
Re : [VBA] Macro sauvegarde feuille d'un classeur

Re Bonjour,

J'ai placé ce code dans un module.
Tu peux l'appeler ensuite par un contrôle ou un évènement (ouverture, fermeture, changement etc).

Ci dessous le code avec quelques commentaires qui pourront t'aider (j'espère!)

Code:
Sub sauv_fichier ()

Dim Service As String
Dim fichier As String
Dim Nom_f As String
Dim APH As String

' Définition du nom du service à insérer dans le nom du fichier
		Service = Sheets("Parametres").Cells(4, 3)

' Définition du nom du fichier utilisé ensuite dans le path complet d'enregistrement. le IIf permet d'adapter le nom du fichier selon qu'un bouton est coché ou pas
		Nom_f = Service & " - Tableau de présences (" & ActiveSheet.Name & ") " & IIf(ActiveSheet.OptionButton1.Value = True, "previsionnel", "définitif")

' Permet de retrouver le login de la session XP et donc de pouvoir placer le fichier dans le rep. mesdocuments de l'utilisateur, mon fichier étant destiné à être utilisé par différentes personnes sur différents postes.
		APH = Environ("UserName")

' Interrompt la mise à jour de l'écran. Ca accélère l'exécution du code
		Application.ScreenUpdating = False

' Copie la feuille active dans un nouveau fichier
		ActiveSheet.Copy

' Définition du path complet. Pourrait être remonté avec les autres définitions pour plus de lisibilité
		fichier = "C:\Documents and Settings\" & APH & "\Mes Documents\" & Nom_f & ".xls"

' Enregistrement du fichier selon le path défini
		ActiveWorkbook.SaveAs fichier

' Fermeture du nouveau classeur sans confirmation (dans mon fichier initial, il était envoyé par mail, je voulais pouvoir revenir sur mon document d'origine directement)
		ActiveWorkbook.Close False

' Ré-actualisation de l'affichage.
Application.ScreenUpdating = True

End Sub
 

kohta

XLDnaute Occasionnel
Re : [VBA] Macro sauvegarde feuille d'un classeur

Re antha

Merci beaucoup pour ces explications, j'avais commencer à trifouiller un peu ce que tu m'avais donné et étais arrivé à un résultat pas trop mal en virant plein d'arguments.

Mais je viens de comprendre le réel intérêt de ce que tu m'as donné! merci bien en tout cas, cela marche parfaitement !

Saurais-tu, à tout hasard comment je pourrais faire pour insérer dans le nom du fichier un date présente sur ma feuille au format JJ/MM/AAAA, mais en la transformant en semaine(exemple S05)???

Merci encore pour toute cette aide :D
 

antha

XLDnaute Occasionnel
Re : [VBA] Macro sauvegarde feuille d'un classeur

Re antha

Merci beaucoup pour ces explications, j'avais commencer à trifouiller un peu ce que tu m'avais donné et étais arrivé à un résultat pas trop mal en virant plein d'arguments.

Mais je viens de comprendre le réel intérêt de ce que tu m'as donné! merci bien en tout cas, cela marche parfaitement !

Saurais-tu, à tout hasard comment je pourrais faire pour insérer dans le nom du fichier un date présente sur ma feuille au format JJ/MM/AAAA, mais en la transformant en semaine(exemple S05)???

Merci encore pour toute cette aide :D


tu pourras peut-être trouver ton bonheur sur Ce lien n'existe plus !


Bonne journée!
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 206
Messages
2 086 210
Membres
103 158
dernier inscrit
laufin