Probleme avec code pour copier feuille Excel vers un autre c
Bonjour à toutes et tous,
Voilà mon problème,
J'ai récupéré un code qui fonctionne bien, il copie bien ma feuille, met bien le nom de la feuille que je veux (contenu d'une cellule).
Mais, (car il y a un mais), c'est qu'il me ferme mon fichier de départ, (là ou se trouve ma macro) alors que je voudrais que celui-ci reste ouvert.
Je vous joints le code, pourriez-vous m'indiquer si je dois changer quelque chose ou pas, si la fermeture du fichier provient de ce code ou non.
[code 'Je duplique la feuille test et la place en dernière feuille'
Worksheets("test").Copy After:=Sheets(Sheets.Count)
'Je renomme la dernière feuille par le contenu de la cellule A3 de la feuille test'
Worksheets(Sheets.Count).Name = Worksheets("test").Range("A3")
'Je sélectionne le dernière onglet du classeur.
Sheets(Sheets.Count).Select
'Je sauvegarde le classeur dans le fichier dont le chemin est spécifié'
ChDir "C:\Users\Georges\Documents\essai\"
'j'ajoute la date du jour et l'heure dans le nom du fichier
nom = Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & Range("A3") & ".xlsm"
'Je sauvegarde le nouveau fichier
ThisWorkbook.SaveAs (nom)][/code]
Voilà, je vous remercie par avance de votre aide
Cordialement
Dubdub22
Bonsoir
Essayez comme ceci :
'Je duplique la feuille test et la place en dernière feuille'
Worksheets("test").Copy After:=Sheets(Sheets.Count)
'Je renomme la dernière feuille par le contenu de la cellule A3 de la feuille test'
Worksheets(Sheets.Count).Name = Worksheets("test").Range("A3")
'Je sélectionne le dernière onglet du classeur.
Sheets(Sheets.Count).Select
'Je sauvegarde le classeur dans le fichier dont le chemin est spécifié'
chemin = "C:\Users\Georges\Documents\essai\"
'j'ajoute la date du jour et l'heure dans le nom du fichier
nom = Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & Range("A3") & ".xlsm"
'Je sauvegarde le nouveau fichier
ThisWorkbook.SaveAs (chemin & nom)Si ok, merci de clôturer le fil en cliquant sur le v vert à coté du bouton EDITER
Cordialement
Bonjour Dan,
Je te remercie de t'être penché sur mon problème, mais je n'ai rien vu de différent dans ton code par rapport au mien.
En revanche j'ai bossé sur mon problème et j'ai trouvé une autre formule.
Ne pouvant pas a priori empêcher la fermeture du premier classeur, j'ai opté pour une mémorisation de celui-ci, que je rappel ensuite, et je termine par la fermeture de la sauvegarde.
Je mets ce code pour les gens que cela intéresserai
Sub Essai()
'
' Eessai Macro
'
Dim nom As String
Dim memPath As String
'Feuille Facture'
'Je duplique la facture et la place en dernière feuille'
Worksheets("test").Copy After:=Sheets(Sheets.Count)
'Je renomme la dernière feuille du contenu de la cellule A3 de la feuille 1'
Worksheets(Sheets.Count).Name = Worksheets("test").Range("A3")
'Je sélectionne le dernière onglet du classeur.
Sheets(Sheets.Count).Select
'mémoriser le path du classeur
memPath = ThisWorkbook.FullName
'Je sauvegarde le classeur dans le fichier dont le chemin est spécifié'
ChDir "C:\Users\Georges\Documents\essai\"
'j'ajoute la date du jour et l'heure dans le nom du fichier
nom = Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & Range("A3") & ".xlsm"
'Je sauvegarde le nouveau fichier
ThisWorkbook.SaveAs (nom)
Sheets("test").Select
ActiveWindow.SelectedSheets.Delete
Range("D2").Select
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
'j'ouvre l'ancien classeur (celui d'avant l'"enregistrement
Application.Workbooks.Open memPath
'Je fini en fermant la sauvegarde'
ThisWorkbook.Close False
End SubMerci à toi Dan, d'avoir répondu
Cordialement
Dubdub22