XL 2010 Copier feuille excel par macro

gbstyle

XLDnaute Impliqué
Bonjour, a tous
Je souhaiterai pouvoir améliorer mon code qui me permet de copier une feuille excel pour l'enregistrer sous un autre classeur :
Mon premier soucis, et que cette feuille à une procédure activate puisque mise a jour automatique par clic, et donc quand je copie cette meme feuille sur le nouveau classeur il m'ouvre l'application visualbasic pour débogage qui est logique car la feuille copié n'est plus lié.

Et j'aimerai pouvoir identifier un chemin, ainsi qu'un paramétrage de titre avec la date, (je n'arrive pas à intégrer la fonction now)

Ci joint petit fichier pour que vous compreniez bien mon soucis
VB:
Sub export_Suivis_Stocks()
With ThisWorkbook
.Worksheets("Suivis_Stocks").Copy
ActiveWorkbook.SaveAs .Path & "\" & Suivis_Stocks
End With
End Sub
 

Pièces jointes

  • exportsuivisStocks.xlsm
    166.3 KB · Affichages: 28

Lone-wolf

XLDnaute Barbatruc
Bonjour jbstyle, le Forum :)

ActiveWorkbook.SaveAs .Path & "\" & Suivis_Stocks. Si Suivis_Stocks est le nom du nouveau classeur, il faut mettre les guillemets.
Pour le paramétrage, pas trop compris. À moins que ce soit comme ceci

Dim chemin$, nom$

chemin = ThisWorkbook.Path & "\"
nom = "Suivis_Stocks " & Format(Date, "mmmm yyyy") & ".xlsx"

Il manque aussi le format de sortie; est-ce que tu veux l'enregistrer avec les macros ou sans?
 

gbstyle

XLDnaute Impliqué
Bonjour Lone-wolf
En faite pour le paramétrage je ne sais pas si tu as essayé le fichier mais lors de mon clic et de l'ouverture du fichier il m'ouvre le nouveau classeur mais à mon avis il faudrait que j'enregistre le fichier sans la macro
Je n'ai pas très bien compris comment tu veux que j'intégre tes infos, je voudrais pouvoir définir le chemin de sauvegarde
VB:
Sub export_Suivis_Stocks()
With ThisWorkbook
.Worksheets("Suivis_Stocks").Copy
ActiveWorkbook.SaveAs .Path & "\" & "Suivis_Stocks"
End With
End Sub
 

Lone-wolf

XLDnaute Barbatruc
Re

Sauvegarder sans macros, à adapter. Tu copie cette macro dans le module 2, en supprimant auparavant tout ce qu'il y a dedans.

VB:
Sub export_Suivis_Stocks()
Dim chemin$, nom$

    chemin = ThisWorkbook.Path & "\"
    nom = "Suivis_Stocks " & Format(Date, "mmmm yyyy") & ".xlsx"
 
    Sheets("Suivis_Stocks").Activate
    ActiveSheet.Copy
 
    Application.ScreenUpdating = False                                             'xlOpenXMLWorkbook = xlsx
    ActiveSheet.SaveAs Filename:=chemin & nom, FileFormat:=xlOpenXMLWorkbook
    ActiveWorkbook.Close True
End Sub
 
Dernière édition:

gbstyle

XLDnaute Impliqué
A prioris j'ai toujour mon message d'erreur de débogage sur mon fichier copier, et le fichier qui s'ouvre se nomme classeur1 :/
je souhaiterai ajouter ce chemin de destination :
"F:\Projet \SL\03_PR\03_B\Exportation"
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re

Est-ce que tu as regardé la dernière macro?? :rolleyes:

chemin ="F:\Projet \SL\03_PR\03_B\Exportation\"

Ceci est le nom du classeur que tu vas créer
nom = "Suivis_Stocks " & Format(Date, "mmmm yyyy") & ".xlsx"

Chez moi je l'ai créé sans problèmes.
 

gbstyle

XLDnaute Impliqué
biensur j'ai appliquer rigoureusement ton code, j'avais également essayer la proposition avec chemin="F...."
mais voici mon réusltat quand je clique sur mon bouton macro,
- débogage
- fichier nomé classeur 11
et j'ai exactement ton code :
VB:
Sub export_Suivis_Stocks()
Dim chemin$, nom$

     chemin = "F:\Projet \SL\03_PR\03_B\Exportation\"
     nom = "Suivis_Stocks " & Format(Date, "mmmm yyyy") & ".xlsx"
 
     Sheets("Suivis_Stocks").Activate
     ActiveSheet.Copy
 
     Application.ScreenUpdating = False                                             'xlOpenXMLWorkbook = xlsx
     ActiveSheet.SaveAs Filename:=chemin & nom, FileFormat:=xlOpenXMLWorkbook
     ActiveWorkbook.Close True
End Sub
upload_2018-5-3_11-44-50.png

upload_2018-5-3_11-45-47.png
 

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 332
Membres
102 864
dernier inscrit
abderrashmaen