XL 2013 fermer et ouvrir des classeurs

chaelie2015

XLDnaute Accro
Bonjour FORUM
Je cherche a compléter ce code qui ferme un classeur et ouvre un autre classeur (qui est définit) en même temps
NB: ces deux sont enregistrés dans le même répertoire.

VB:
If MsgBox("Un nouveau fichier a été créé,nommé :" & Chr(10) & Chr(10) & [AL4] & Chr(10) & Chr(10) & "Etes-vous certain de vouloir quiter ce classeur ?", vbYesNo, "Demande de confirmation") = vbYes Then
        Dim wb As Workbook
        For Each wb In Workbooks 'boucle sur tous les classeurs ouverts
        wb.Close True 'fermeture du classeur avec sauvegarde
        Next
        Application.Quit
       
    End If
A+
 
Dernière édition:

Gégé-45550

XLDnaute Accro
Bonjour,
Pourquoi fermer Excel à la fin de la procédure alors que vous allez l(ouvrir à nouveau pour créer un nouveau classeur ?
un simple
VB:
Dim New_Workbook as Workbook

Workbooks.Add
Set New_Workbook = ActiveWorkbook
à la place de Application.Quit ne suffirait-il pas ?
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Pourquoi fermer Excel à la fin de la procédure alors que vous allez l(ouvrir à nouveau pour créer un nouveau classeur ?
Touafé 😉

Je crois deviner que la procédure complète envisagée est la suivante : SaveAs du classeur actif, ce qui crée un nouveau classeur et ferme le classeur précédent, donc fermeture de ce nouveau classeur et ouverture du classeur précédent qui, par définition, est déjà existant.

Mais si ça se trouve, j'ai tout faux... 🤣🤣🤣
 

chaelie2015

XLDnaute Accro
Bonjour tous le monde
j'ai un classeur type (par exemple nommé Burx Type.xlsm ) dans ce classeur il y a une feuille nommée Model
je souhaite :
1. via un bouton (nommé Save as) de créer un nouveau classeur (jusqu'au la c'est fait)
2. ensuite enregistrer dans le même répertoire que le classeur type (c'est fait)
3. Ferme le nouveau classeur et ouvre le premier (classeur type) ?
Merci
 

chaelie2015

XLDnaute Accro
Re
Ci dessous le code complet du bouton "save as"
Créer une copie après sauvegarde cette copie dans le même répertoire de l'originale.
VB:
Sub Save_As()
Application.DisplayAlerts = False 'si le fichier a déjà été créé
ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & [AL4].Value, 52 '52 = extension .xlsm'

    If MsgBox("Un nouveau fichier a été créé,nommé :" & Chr(10) & Chr(10) & [AL4] & Chr(10) & Chr(10) & "Etes-vous certain de vouloir quiter ce classeur ?", vbYesNo, "Demande de confirmation") = vbYes Then
        Dim wb As Workbook
        For Each wb In Workbooks 'boucle sur tous les classeurs ouverts
        wb.Close True 'fermeture du classeur avec sauvegarde
        Next
        Application.Quit
      
    End If

End Sub

A+
 
Dernière édition:

chaelie2015

XLDnaute Accro
Re
Ci dessous le code complet du bouton "save as"
Créer une copie après sauvegarde cette copie dans le même répertoire de l'originale.
VB:
Sub Save_As()
Application.DisplayAlerts = False 'si le fichier a déjà été créé
ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & [AL4].Value, 52 '52 = extension .xlsm'

    If MsgBox("Un nouveau fichier a été créé,nommé :" & Chr(10) & Chr(10) & [AL4] & Chr(10) & Chr(10) & "Etes-vous certain de vouloir quiter ce classeur ?", vbYesNo, "Demande de confirmation") = vbYes Then
        Dim wb As Workbook
        For Each wb In Workbooks 'boucle sur tous les classeurs ouverts
        wb.Close True 'fermeture du classeur avec sauvegarde
        Next
        Application.Quit
    
    End If

End Sub

A+
Bonsoir Forum
Est ce que mon souci est claire ?
Merci par avance
 

TooFatBoy

XLDnaute Barbatruc
Je n'ai pas compris pourquoi tu veux fermer tous les classeurs, mais je pense qu'une fois qu'ils sont tous fermés, tu n'as plus de macro qui tourne pour en ouvrir un autre... Donc il faudrait l'ouvrir avant de fermer au moins le dernier, voir le premier.

Peux-tu dire :
1- si SaveCopyAs te convient,
2- s'il faut tout de même fermer tous les classeurs (sauf le classeur qui a créé la copie, bien sûr) ?
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 080
Messages
2 116 019
Membres
112 637
dernier inscrit
pseudoinconnu