Fermer un fichier

J

JB

Guest
Bonjour à tous,

Je souhaite fermer un fichier qui est déjà ouvert mais sur lequel je ne suis pas. Alors, je dois l'appeler et le fermer...
Pour l'appeler, c'est un chemin qui se trouve dans un fichier nommé 'feuille d'enregistrement' dans la feuille 'chemin' en A14.
Le gros problème c'est que je n'arrive pas à l'appeler et donc il ne se ferme pas.
Quelqu'un a t il une solution a mon probmème.

Exemple de la macro :
Windows('feuille d'enregistrement.xls').Activate
Dim chemin16 As String
chemin16 = Range('chemin!a14')
Workbooks(chemin16).Activate
ActiveWorkbook.Close Filename:=chemin16

Merci
JB
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour JB, le Forum

Une approche différente, boucler sur tous les classeurs ouverts :


Pour FErmer SANS sauver tous les classeurs ouverts à part celui contenant le code :

Sub TheCloser()
Dim WB As Workbook

Application.DisplayAlerts =
False
   
For Each WB In Workbooks
       
If Not WB.Name = ThisWorkbook.Name Then
        WB.Close
False
   
End If
Next

End Sub


La même EN SAUVANTles classeurs :

Option Explicit

Sub TheCloser()
Dim WB As Workbook

Application.DisplayAlerts =
False
   
For Each WB In Workbooks
       
If Not WB.Name = ThisWorkbook.Name Then
        WB.Close
True
   
End If
Next

End Sub

Une variante qui va chercher le non du Classeur à fermer dans la Range 'A14' du classeur où se trouve le code, tout en ne cherchant que les quatres caractères de gauche (NB : fermera donc tous les classeurs qui commencent avec les mêmes 4 caractères)

Option Explicit
Option Compare Text

Sub TheCloser()
Dim WB As Workbook

Application.DisplayAlerts =
False
   
For Each WB In Workbooks
       
If Left(WB.Name, 4) = Left(ThisWorkbook.Sheets('chemin').Range('A14'), 4) Then
        WB.Close
True
   
End If
Next

End Sub


On peut en faire tout plein comme ça !!!


Bonne Soirée
[ol]@+Thierry[/ol]


EDITION !!!
Bonsoir PierreJean, pardon pas vu !

Pour ta syntax c'est correct, mais on peut aussi passer l'argument 'SaveChanges' qui est optional, mais peut rendre service comme dans mes deux premiers exemples

Message édité par: _Thierry, à: 09/02/2006 19:02
 
J

JB

Guest
Merci Pierre Jean et Thierry.
Désolé, pour la première réponse, elle ne me convient pas car le nom du fichier correspond à des imports qui change de nom régulièrement. Je vais donc opter pour la réponse de thierry.

Merci de vous êtes penché sur mon problème.
salutations.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour JB, PierreJean

Dans ce cas, alors c'est clair qu'il te faudra une boucle.

Attention toutefois, car on peut aussi mécontenter les Users si on leur ferme tous leur classeurs ouverts.

Bonne Journée
[ol]@+Thierry[/ol]
 

Discussions similaires

Statistiques des forums

Discussions
312 496
Messages
2 088 979
Membres
103 996
dernier inscrit
KB4175