Fermer un autre fichier vba

Fermé
trustpol Messages postés 36 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 25 avril 2008 - 15 avril 2008 à 11:16
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 15 avril 2008 à 12:24
Bonjour,

j'ai réalise une macro qui me permet d'ouvrir un fichier après avoit mis dans une text box le nom du fichier ( le chemin est toujours le meme)

Cependant je n'aarive pas a le fermer. J'ai dimensionner une variable avec le nom du fichier rentrer par l'utilisateur

coici mon code

Private Sub cmdValider_Click()

Dim fichier as string

fichier = txtSource

'On ouvre le reléve correspondant au fchier indiqué
ChDir "D:\YYY\XXX\2008"
Workbooks.Open Filename:=fichier

'On ferme le relevé
Workbooks(fichier).Close Savechanges:=False ==> cette ligne ne marche pas

End Sub


Mais ca ne marche pas pouvez vous m'aider???

Merci beaucoup

Cordialement
A voir également:

2 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
15 avril 2008 à 11:35
Bonjour,

Il ne faut pas mettre l'action d'ouvrir et de fermer le fichier dans la même procédure.

;o)

polux
0
trustpol Messages postés 36 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 25 avril 2008
15 avril 2008 à 11:59
re

on peut mettre les deux dans la meme procédure

mais je n'arrive pas a remettre ma variable dans le nom du fichier a fermer

sa doit etre un probleme de paranthese ou de guillement.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
15 avril 2008 à 12:24
c'est étrange effectivement.

Voilà la procédure que j'utilise pour fermer un fichier, si ça peut t'être utile.
Private Sub CloseAppli(ByVal myFile As String)
dim ws As Workbook
    For Each ws In Workbooks
        If ws.name = myFileThen
            ws.Close SaveChanges:=False
        End If
    Next ws
End Sub

On peut aussi faire ça de façon plus générale. On ferme tous les fichiers Excel, sauf celui qui lance la procédure:
Private Sub CloseAppli()
    For Each ws In Workbooks
        If ws.name <> ThisWorkbook.name Then
            ws.Close SaveChanges:=False
        End If
    Next ws
End Sub

Bon courage.

;o)

Polux
0