Classeur précédent

marcloarec Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
pijaku Messages postés 12263 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:

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
A voir également:

1 réponse

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Salut,

En toute fin de macro :
ThisWorkbook.Close True

0
marcloarec Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
Merci, mais n'y a t il pas moyen de garder la nouvelle fenêtre ouverte pour pouvoir refaire la manip plusieurs fois de rang?
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761 > marcloarec Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
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...
0
marcloarec Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
Hélas avec ce second programme, Excel ne m'enregistre pas le premier mais le second tableau...
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761 > marcloarec Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
Oui! Mais...
Tu sais enregistrer le classeur actif?
Non?
Et maintenant, après mon code, quel est le classeur actif?
0
marcloarec Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   > pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention  
 
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 :)
0