Classeur précédent

Fermé
marcloarec Messages postés 14 Date d'inscription mardi 24 mars 2015 Statut Membre Dernière intervention 5 juillet 2016 - Modifié par pijaku le 25/03/2015 à 13:11
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 25 mars 2015 à 15:27
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
25 mars 2015 à 13:16
Salut,

En toute fin de macro :
ThisWorkbook.Close True

0
marcloarec Messages postés 14 Date d'inscription mardi 24 mars 2015 Statut Membre Dernière intervention 5 juillet 2016
25 mars 2015 à 13:24
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751 > marcloarec Messages postés 14 Date d'inscription mardi 24 mars 2015 Statut Membre Dernière intervention 5 juillet 2016
Modifié par pijaku le 25/03/2015 à 13:34
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 mardi 24 mars 2015 Statut Membre Dernière intervention 5 juillet 2016
25 mars 2015 à 14:19
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751 > marcloarec Messages postés 14 Date d'inscription mardi 24 mars 2015 Statut Membre Dernière intervention 5 juillet 2016
25 mars 2015 à 14:30
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 mardi 24 mars 2015 Statut Membre Dernière intervention 5 juillet 2016 > pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024
25 mars 2015 à 14:34
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