Code VBA - Faire référence à un fichier afin de le refermer

Bonsoir,

J'ai un problème avec le code ci-dessous, dans la partie 3).

Comme le fichier que je cherche et que j'ouvre dans la partie 1) a toujours un autre nom, je ne sais pas comment y faire référence dans la partie 3), lorsqu'il s'agit de refermer ce fichier, après avoir copié et déplacé la feuille de données (partie 2)).

Sub Ouvrir_copier_fermer()

' 1) Ouvrir le fichier du mois précédent (qui a toujours un autre nom)

Dim chemin As String

chemin = "G:\xxxxxxxxxxxx"

Application.Dialogs(xlDialogOpen).Show (chemin)

' 2) Copier la feuille "Données" du mois précédent

Sheets("Données").Copy After:=Workbooks( _

"Mon_fichier_contenant_la_macro.xls").Sheets(1)

' 3) Fermer le fichier choisi sous 1)

??? Windows("Fichier_choisi_ci_dessus.xls").Activate ???

ActiveWorkbook.Close

End Sub

Bonnes salutations.

Salut le forum

Pour récupérer le nom du fichier sélectionné, il suffit d'utiliser ActiveWorkbook.FullName :

If Not Application.Dialogs(xlDialogOpen).Show Then Exit Sub 
MsgBox "vous avez ouvert le fichier " & ActiveWorkbook.FullName

Mytå

Myta,

Merci infiniment pour ton aide, mais ta solution m’oblige à choisir une deuxième fois dans la partie 3) de mon code le fichier que j’ai déjà cherché une première fois dans la partie 1) [Voir mon premier message ci-dessus] :

N’y a-t-il pas la possibilité d’y faire référence d’une manière automatisée ? Je pensais par exemple à enregistrer le nom du fichier ouvert sous point 1) quelque part dans mon code afin de le réutiliser sous point 3).

Bonne journée à vous tous

Bonjour,

Tu peux essayer ceci en créant une variable sur le fichier que tu ouvres.

Pour ce faire, tu mets ceci -->

Public nom as string
Sub Ouvrir_Copier_fermer
.....
Application........(chemin)
nom = ActiveWorkbook.Name 

dans la partie 3 tu reprends ce nom comme suit :

Workbooks(nom).Close

A te relire

Dan

C'est génial Dan, ça fonctionne à merveille.

Merci à toi et à Myta pour votre aide.

Bonne fin de journée

Salut le forum

Pour éviter une erreur si aucun fichier sélectionné (Bouton Annuler)

Sinon c'est le classeur de départ qui sera fermé.

Public nom As String

Sub Ouvrir_Copier_fermer()
If Not Application.Dialogs(xlDialogOpen).Show Then Exit Sub
nom = ActiveWorkbook.Name
'...
'Le traitement à effectuer
'...
Workbooks(nom).Close
End Sub

Tu peux aussi limiter le type de fichier à ouvrir

Application.Dialogs(xlDialogOpen).Show("C:\Excel\*.xls")

Mytå

Rechercher des sujets similaires à "code vba reference fichier afin refermer"