Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Verification si fichier deja ouvert

aubelix

XLDnaute Impliqué
Bonjour à tous les amis du Forum.

Je reviens une fois de plus vers vous pour vous soumettre mon problème.
J'ai glané sur le Forum ce code pour vérifier si le classeur
"Gestion_Adhérents.xls" est ouvert ou non.
En fonction de son état, je lancez la macro ci-dessous.
Mais je n'arrive pas à lancer l'Userform si le classeur est déjà ouvert.
Où est l'erreur ?

Par avance, merci pour votre aide.
Cordialement.

Sub Extractions()
'Ouverture si pas Ouvert
' activer le fichier ==> sinon l'ouvrir
Workbooks("Gestion_Adhérents.xls").Activate
If Err <> 0 Then
On Error GoTo 0
Workbooks.Open Filename:="C:\Users\PERSO\Documents\Gestion_Adhérents.xls"

If Err <> 0 Then
MsgBox "Le fichier ""Gestion_Adhérents.xls"" est introuvable"

End If

End If
'ici la macro se bloque si le classeur est ouvert et l'userform ne se lance pas
UserForm1.Show
End Sub
 

jp14

XLDnaute Barbatruc
Re : Verification si fichier deja ouvert

Bonjour

Modifications à tester

Sub Extractions()
'Ouverture si pas Ouvert
' activer le fichier ==> sinon l'ouvrir
Workbooks("Gestion_Adhérents.xls").Activate

If Err <> 0 Then
On Error GoTo 0
Workbooks.Open Filename:="C:\Users\PERSO\Documents\Gestion_Adhére nts.xls"


If Err <> 0 Then
MsgBox "Le fichier ""Gestion_Adhérents.xls"" est introuvable"
exit sub ' pour sortir de la procédure
End If

End If

'ici la macro se bloque si le classeur est ouvert et l'userform ne se lance pas
Workbooks("le fichier de base qui contient l'userform").Activate
UserForm1.Show
End Sub


JP
 

aubelix

XLDnaute Impliqué
Re : Verification si fichier deja ouvert

Bonjour Jp14 et Skoobi.

Merci pour vos réponses.

Pour répondre à Skoobi, l'UserForm se trouve dans le fichier Gestion_Adhérents.xls

Jp14, la macro se bloque au premier :
Workbooks("Gestion_Adhérents.xls").Activate

J'ai ajouté on error resume next au début de la macro, elle se bloque au deuxième
Workbooks("Gestion_Adhérents.xls").Activate
avant Userform1.show

Merci pour aide.
Cordialement.
 

skoobi

XLDnaute Barbatruc
Re : Verification si fichier deja ouvert

Re,

dans ce cas il faut dans le fichier Gestion_Adhérents.xls créer un module dans lequel tu crés par exemple cette procédure:
Code:
Sub LanceUsf()
Userform1.Show
End Sub
Et dans la macro Extractions, remplace
Code:
Userform1.Show
par
Code:
Application.Run "Gestion_Adhérents.xls!LanceUsf"
 

Luinil

XLDnaute Nouveau
Re : Verification si fichier deja ouvert

Code:
Private Sub Importer_Click()
Dim classeur As String
classeur = ActiveWorkbook.Name

  Application.ScreenUpdating = False
    
' Ouverture si pas Ouvert
' activer le fichier ==> sinon l'ouvrir
On Error Resume Next
Workbooks("Gestion_Adhérents.xls").Activate
If Err <> 0 Then
On Error GoTo 0
Workbooks.Open "C:\Users\PERSO\Documents\Gestion_Adhérents.xls"


If Err <> 0 Then
MsgBox "Le fichier ""Gestion_Adhérents.xls"" est introuvable"
Exit Sub ' pour sortir de la procédure
End If

End If
'Lancer les userforms
    Windows(classeur).Activate
UserForm1.Show
  Application.ScreenUpdating = True
End Sub

Pas beaucoup de modif, mais il marche chez moi impécablement.
Luinil
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…