VBA fermer un fichier Excel [Résolu/Fermé]

-
Bonjour,

j'ai créée une macro qui me permet d'ouvrir un fichier "EXTRACTION.XLS"et de copier la feuille qu 'il contient dans mon fichier "QAcier.XLS"
je voudrais qu'une foi la copy exécuté le fichier "EXTRACTION.XLS" ce ferme auomatiquement

j'ai mis NomSource.close mais ça ne marche pas

voici le code

' cette macro permet d'aller chercher selon un chemin un fichier Excel
Sub MAJ()
Dim NomSource As String, i As Integer
     If MsgBox("Voulez vous aller chercher le fichier EXTRACTION.xls ? ", vbYesNo) = vbYes Then
        For i = 1 To Sheets.Count 'supprime la feuille Summary si existe
            If Sheets(i).Name = "Summary" Then Sheets(i).Delete: Exit For
        Next i
        ' il faut aller chercher le fichier Excel"EXTRACTION" donc on utilise Application.GetOpenFilename
        
        NomSource = Application.GetOpenFilename
        ' ouvre le fichier source
        Workbooks.Open (NomSource)
        ' copy la feuille Summary du fichier source aorès la feuille 6 du notre fichier Excel
        ActiveWorkbook.Sheets("Summary").Copy after:=ThisWorkbook.Sheets(6)
        NomSource. Close

    Else
        MsgBox (" Aurevoir et à bientôt ")
    End If
End Sub

Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
14787
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
14 octobre 2019
1176
33
Merci
Bonjour,
Fermeture Classeur:

Workbooks(Nom_Classeur).Close False 'sans sauvegarde (True si sauvegarde)


Bonne suite

Dire « Merci » 33

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 62621 internautes nous ont dit merci ce mois-ci

ça ne marche pas ça me mes code erreur '9'
Messages postés
14787
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
14 octobre 2019
1176
32
Merci
Re,

votre code modifie
Sub MAJ()
Dim NomSource, i As Integer
Dim Wb As Workbook

If MsgBox("Voulez vous aller chercher le fichier EXTRACTION.xls ? ", vbYesNo) = vbYes Then
For i = 1 To Sheets.Count 'supprime la feuille Summary si existe
If Sheets(i).Name = "Summary" Then Sheets(i).Delete: Exit For
Next i
' il faut aller chercher le fichier Excel"EXTRACTION" donc on utilise Application.GetOpenFilename

NomSource = Application.GetOpenFilename
' ouvre le fichier source
Set Wb = Workbooks.Open(NomSource)
' copy la feuille Summary du fichier source aorès la feuille 6 du notre fichier Excel
Wb.Sheets("Summary").Copy after:=ThisWorkbook.Sheets(6)
'fermeture classeur EXTRACTION.xls
Wb.Close

Else
MsgBox (" Aurevoir et à bientôt ")
End If
End Sub


Bonne suite
Merci

ça marche

jp
Messages postés
400
Date d'inscription
vendredi 2 mars 2012
Statut
Membre
Dernière intervention
1 avril 2016
200
3
Merci
Ou alors tout simplement ceci au moment ou tu souhaite fermer en enregistrant :

Workbooks("EXTRACTION.xls").Close True

Remplacer True par False si tu souhaite ne pas enregistrer