Classeur précédent
marcloarec
Messages postés
16
Statut
Membre
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai écrit une macro qui me permet de couper un classeur en deux et coller la sélection dans un nouveau classeur.
En revanche mon problème est que je voudrais pouvoir revenir sur le classeur initial pour pouvoir le sauvegarder et le fermer et ainsi reproduire la manip par la suite.
Hélas je ne trouve pas comment faire pour revenir au classeur précédent et tel qu'est mon code il n'enregistre que le "ActiveWorkbook".
Quelqu'un aurait-il une idée?
Merci beaucoup.
PS: Voici le code tel qu'il est:
J'ai écrit une macro qui me permet de couper un classeur en deux et coller la sélection dans un nouveau classeur.
En revanche mon problème est que je voudrais pouvoir revenir sur le classeur initial pour pouvoir le sauvegarder et le fermer et ainsi reproduire la manip par la suite.
Hélas je ne trouve pas comment faire pour revenir au classeur précédent et tel qu'est mon code il n'enregistre que le "ActiveWorkbook".
Quelqu'un aurait-il une idée?
Merci beaucoup.
PS: Voici le code tel qu'il est:
Sub Découpe_Excel()
'
' Découpe_Excel Macro
'
' Touche de raccourci du clavier: Ctrl+Shift+D
'
Dim Dernierelign As Long
Dernierelign = Cells(Columns(4).Cells.Count, 1).End(xlUp).Row
Rows("30389:" & Dernierelign).Select
Selection.Cut
Workbooks.Add
ActiveSheet.Paste
Dim nom As String
nom = Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & ActiveWorkbook.Name
ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\" & nom
rep = MsgBox("Votre base de données est sauvegardée sous le nom : " & nom, vbYes + vbInformation, "Copie sauvegarde classeur")
End Sub
1 réponse
-
Salut,
En toute fin de macro :ThisWorkbook.Close True
-
-
Tu peux, au choix :
- fermer le classeur ActiveWorkbook :
ActiveWorkbook.Close True
- revenir au classeur ThisWorkbook :
Sub Découpe_Excel() Dim Classeur_Source As Workbook Dim Dernierelign As Long Set Classeur_Source = ThisWorkbook Dernierelign = Cells(Columns(4).Cells.Count, 1).End(xlUp).Row Rows("30389:" & Dernierelign).Cut Workbooks.Add ActiveSheet.Paste Dim nom As String nom = Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & ActiveWorkbook.Name ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\" & nom rep = MsgBox("Votre base de données est sauvegardée sous le nom : " & nom, vbYes + vbInformation, "Copie sauvegarde classeur") Classeur_Source.Activate End Sub
EDIT : même si les activate et autres select sont à déconseiller... -
-
-
Je vois bien ce que tu veux dire, mon but final visait à pouvoir couper la fin de mon tableau d'un classeur au suivant, puis de pouvoir dans la macro revenir au premier classeur, le sauvegarder puis le fermer pour me retrouver avec les données coupées dans le second classeur et pouvoir réitérer la macro jusqu'à la fin des valeurs.
Je sais pas si je me fais bien comprendre, c'est possible que non :)
-