macro vba ouverture fichier

elguau

XLDnaute Junior
Bonjour le Forum,

J'ai un macro qui ouvre un fichier (fichier de reference) et importe des données ves le fichier actif. Cette macro bug quand le fichier de reference est deja ouvert et de coup une boite de dialogue s'ouvre et demande si je veux reouvrir le fichier de reference. Je dois cliquer sur "OK" si non la macro ne marche pas.

Comment dire en vba de sauter l'ouverture du fichier de reference s'il est deja ouvert?


Code:
Workbooks.Open Filename:=Répertoire & "\" & NomDuFichierRéférence

Merci d'avance

David
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : macro vba ouverture fichier

Bonjour Elgau, bonjour le forum,

Peut-êter comme ça :
Code:
[COLOR=red]On Error Resume Next
[/COLOR]Workbooks.Open Filename:=Répertoire & "\" & NomDuFichierRéférence
[COLOR=red]On Error GoTo 0[/COLOR]
 

repcheks

XLDnaute Junior
Re : macro vba ouverture fichier

Sinon un petit test de présence, en admettant que ton fichier se nomme fichier.xls

Code:
Dim presence as Boolean
Dim w as Workbook

For each w in Workbooks
     If w.Name="fichier.xls" then
          Presence=True
          w.activate
          Exit For
     End If
Next w

If Presence=False then
     Workbooks.Open Filename:=Répertoire & "\" &  "fichier.xls"
End If

NB: Par contre ca ne marche pas si tes fichiers se trouvent dans des instances Excel différentes, mais en utilisation classique ca ne doit pas trop arriver.
 

youky(BJ)

XLDnaute Barbatruc
Re : macro vba ouverture fichier

Bonjour le fil,
Une autre solution. . . .
on active direct le fichier en gérant l'erreur
si il est déja ouvert on saute l'open
Bruno

Code:
On Error Resume Next
Workbooks("NomDuFichierRéférence.xls").Activate
If Err.Number = 9 Then
Err = 0
Workbooks.Open Filename:=Répertoire & "\" & NomDuFichierRéférence
End If
 

Discussions similaires

Statistiques des forums

Discussions
312 413
Messages
2 088 211
Membres
103 768
dernier inscrit
proxyci