Fermeture fichier Excel

Sly le globe trotter

XLDnaute Occasionnel
Bonjour à tous,

Grâce à des recherches sur ce forum, j'ai pu développer le bout de code qui me permet de copier dans un classeur ouvert des données présentes dans des fichiers fermés.

Code:
Private Sub RgptEval_Click()

Dim fso As Object, Dossier As Object, NomDossier
Dim Files As Object, File As Object, i, k As Integer
Dim xls As New Excel.Application
Dim FeuilleSource As Excel.Worksheet, FeuilleCible As Excel.Worksheet

Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossier = fso.getfolder(ThisWorkbook.Path)
    
Set Files = Dossier.Files
k = 3
If Files.Count <> 0 Then
    For Each File In Files
        If File.Name <> "Synthèse Evaluation Formation.xlsm" And File.Name <> "~$Synthèse Evaluation Formation.xlsm" Then

            Set FeuilleSource = xls.Workbooks.Open(File.Path).Worksheets("Eval")
            Set FeuilleCible = ActiveWorkbook.Worksheets("RgptEval")
            
            With FeuilleSource
                .Range(.Cells(22, 9), .Cells(43, 9)).Copy
            End With

            With FeuilleCible
                .Range(.Cells(6, k), .Cells(27, k)).Select
                Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False
            End With

            Set xls = Nothing
            Set FeuilleSource = Nothing
            Set FeuilleCible = Nothing
            xls.Quit
        
            k = k + 3
        End If
    Next
End If

Set fso = Nothing
Set Dossier = Nothing

end sub

Petit problème, les fichiers que j'ouvre via
Code:
Set FeuilleSource = xls.Workbooks.Open(File.Path).Worksheets("Eval")
ne sont pas refermés... Quel est le protocole à suivre pour fermer un tel fichier ?

Merci pour votre aide !
Sly
 

Pierrot93

XLDnaute Barbatruc
Re : Fermeture fichier Excel

Re

essaye ainsi :

Code:
FeuilleSource.Close

au cas ou, tu peux utiliser l'argument "savechanges", pour enregistrer les modifications ou pas, comme tu le souhaites...

bon après midi
@+

Edition : ta variable "FeuilleSource" doit être un classeur..
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Fermeture fichier Excel

Re,

On ne peut fermer une feuille mais un classeur... et ta variable "FeuilleSource" est une feuille de calcul d'un classeur "x", on utilise donc la propriété "parent" de la feuille qui représente son classeur pour le fermer...
 

Statistiques des forums

Discussions
314 098
Messages
2 105 856
Membres
109 452
dernier inscrit
thaz