Bonjour,
Dans le code ici-bas, j'ouvre une boite de dialogue pour sélectionner puis ouvrir un autre classeur excel. Je me demande s'il y a une manière qui me permettrait de ne pas ouvrir le classeur sélectionné si celui-ci est déjà ouvert?
Merci,
Dans le code ici-bas, j'ouvre une boite de dialogue pour sélectionner puis ouvrir un autre classeur excel. Je me demande s'il y a une manière qui me permettrait de ne pas ouvrir le classeur sélectionné si celui-ci est déjà ouvert?
Code:
Dim sfiltre As String
Dim STitre As String
Dim SNomDossier As String
Dim IntFilterIndex As Integer
Dim Filename As Variant
Dim StrNomduFichier As String
'http://www.tek-tips.com/faqs.cfm?fid=4114
'sfiltre = "Fichiers Excel (*.xls),*.xls;*.xlsx" 'Filtre à appliquer
sfiltre = "Fichiers office, *.xls;*.xlsx" 'Filtre à appliquer
'sfiltre = "Fichiers Excel (*.xls),*.xls" 'Filtre à appliquer
IntFilterIndex = 1
STitre = "Choisissez un fichier contenant les données à recompiler" 'Titre de la boite
SNomDossier = Application.ActiveWorkbook.Path 'Chemin initial
SNomDossier = SNomDossier & "\Data"
StrDrive = Mid(SNomDossier, 1, 1)
'On applique l'emplacement des fichiers.
ChDrive (StrDrive)
ChDir (SNomDossier)
With Application
' Set File Name to selected File
Filename = .GetOpenFilename(sfiltre, IntFilterIndex, STitre)
' Reset Start Drive/Path
ChDrive (Left(.DefaultFilePath, 1))
ChDir (.DefaultFilePath)
End With
'On trouve le nom du fichier
StrNomduFichier = Mid(Filename, InStrRev(Filename, "\") + 1, Len(Filename))
If Filename = False Then
MsgBox "Pas de fichier sélectionné"
Exit Sub
End If
Call ouvrefichier(Filename)
' Open File
'Workbooks.Open Filename
'Permet de lancer une recompilation
Call GenerationdeBase(1, StrNomduFichier)
End Sub
'============================================
'============================================
Sub ouvrefichier(o_Filename)
On Error Resume Next
Workbooks.Open o_Filename
If Err.Number <> 0 Then
MsgBox "Il y a un problème à ouvrir ce fichier"
End
End If
MsgBox o_Filename, vbInformation, "Fichier ouvert avec succès!" ' This can be removed
End Sub