verifier qu'un classeur est ouvert

D

David

Guest
Bonjour a tous!
Je voudrais savoir quel est le code en VBA qui permet de verifier qu'un classeur different est ouvert.
En fait je programme une macro dans laquelle je vais chercher des données dans une cellule d'un classeur different. Donc je voudrai qu'elle ne s'effectue que si ce classeur est ouvert, sinon je mettrai un message d'erreur.
Merci d'avance!
 

Creepy

XLDnaute Accro
Bonjour le forum, David,

Voici un code qui testz si le fichier est ouvert sinon l'ouvre.

Sub OuvreSiPasOuvert()
' activer le fichier ==> sinon l'ouvrir
On Error Resume Next
Workbooks('simplex.xls').Activate
If Err <> 0 Then
fichier = 'c:\\simplex.xls'
Workbooks.Open Filename:=fichier
If Err <> 0 Then
MsgBox 'Le fichier ' & fichier & '
' est introuvable'
End If
End If
End Sub

En faites le moyen le plus simple de tester si le classeur est ouvert c'est de lui appliquer une commande genre activate. Si ca retourne un message d'erreur c'est que le classeur n'est pas ouvert !

@+

Creepy

PS : je n'ai pas tapé le code je l'ai copier/coller du tres bon site de Excelabo.

Message édité par: Creepy, à: 22/08/2005 12:18
 

Moulinois

XLDnaute Occasionnel
Re : verifier qu'un classeur est ouvert

Bonjour,
Je fais revivre les vieux fils, un peu comme un collectionneur de voitures anciennes.
Code:
Sub OuvreSiPasOuvert() 
' activer le fichier ==> sinon l'ouvrir 
On Error Resume Next 
Workbooks('simplex.xls').Activate 
If Err <> 0 Then 
fichier = 'c:\\simplex.xls' 
Workbooks.Open Filename:=fichier 
If Err <> 0 Then 
[COLOR="Red"]MsgBox 'Le fichier ' & fichier & '' est introuvable'[/COLOR] 
End If 
End If 
End Sub
J'ai corrigé le code et mis des guillemets où il faut mais j'ai un problème : Le message d'alerte s'affiche aussi quand le fichier est trouvable (et qu'il s'ouvre correctement).

Je n'y connais rien en gestion d'erreurs mais je suppose que le Err ne vaut pas 0 puisqu'on a eu une première erreur auparavant :confused:

Bref, merci de m'aider à résoudre mon soucis ;)

@+
 

Pierrot93

XLDnaute Barbatruc
Re : verifier qu'un classeur est ouvert

Bonjour Moulinois

modifies peut être le code comme suit :

Code:
Sub OuvreSiPasOuvert()
' activer le fichier ==> sinon l'ouvrir
On Error Resume Next
Workbooks("simplex.xls").Activate
If Err <> 0 Then
    On Error GoTo 0
    fichier = "c:\simplex.xls"
    Workbooks.Open Filename:=fichier
    If Err <> 0 Then
        MsgBox "Le fichier " & fichier & '' est introuvable"
    End If
End If
End Sub

bonne journée
@+

Edition : modifié le chemin et la msgbox...
 
Dernière édition:

Moulinois

XLDnaute Occasionnel
Re : verifier qu'un classeur est ouvert

Ouuuuuuuuups, ça ne marche pas :(

Quand il ne trouve pas le fichier, j'ai une erreur '1004' comme s'il n'y avait pas de gestion d'erreurs.


EDIT : Voici mon code :
Code:
On Error Resume Next
    Workbooks("EXPORT TEMPS.XLS").Activate
    If Err <> 0 Then
        On Error GoTo 0
        Workbooks.Open Filename:="C:\Etats - Excel\EXPORT TEMPS.XLS"
        If Err <> 0 Then
            MsgBox "Le fichier ""EXPORT TEMPS.XLS"" est introuvable"
            UserForm2.Show [COLOR="Green"]'Lance un formulaire pour demander où est situé le fichier[/COLOR]
            PathBase = UserForm2.Text_Dossier.Value
            [COLOR="Green"]'Il manque le bout où j'ouvre PathBase mais c'est pas son absence qui fait foirer le code...d'ailleurs j'ai fait une connerie puisque je ne demande que le path et pas le chemin complet AVEC le nom du fichier (des fois que)[/COLOR]
        End If
    End If

Si j'ai pas GoTo 0, ça marche normalement si le fichier ne se trouve pas à l'endroit prévu.
Si je l'ai, ça marche si le fichier est à la bonne place.
=> J'aimerais bien que ça marche tout le temps :D
 
Dernière édition:

Discussions similaires

Réponses
26
Affichages
568

Statistiques des forums

Discussions
312 799
Messages
2 092 241
Membres
105 304
dernier inscrit
mathis000