Bonjour,
Dans le Workbook de"client.xls" j'ai mis :
Private Sub Workbook_Open
Workbooks.Open Filename.¬tiveWorkbook.Path & "travail.xls"
La macro fonctionne bien
mais pour des raisons de sécurité j'interdit l'ouverture de ce fichier travail.
La macro qui comprend d'autres instructions notamment de fermer "client" apres une temporisation rete
donc bloquée.
Quelle instruction me permettrai de continuer a executer cette macro ?
J'ajoute que je dispose dans client d'un critere de vérification de l'ouverure de "travail" que j'ai
élaboré avec dans "client"la fonction alea() recopié dans "travail" et re recopié dans "client."
Mais je suis incapable de revenir dans "client" apres l'echec de l'ouverture de "travail".
Merçi de me faire profiter de vos lumières.
Cordialement
Claude
Bonjour,
Dans le Workbook de"client.xls" j'ai mis :
Private Sub Workbook_Open
Workbooks.Open Filename.¬tiveWorkbook.Path & "travail.xls"
La macro fonctionne bien
mais pour des raisons de sécurité j'interdit l'ouverture de ce fichier travail.
La macro qui comprend d'autres instructions notamment de fermer "client" apres une temporisation rete
donc bloquée.
Quelle instruction me permettrai de continuer a executer cette macro ?
J'ajoute que je dispose dans client d'un critere de vérification de l'ouverure de "travail" que j'ai
élaboré avec dans "client"la fonction alea() recopié dans "travail" et re recopié dans "client."
Mais je suis incapable de revenir dans "client" apres l'echec de l'ouverture de "travail".
Merçi de me faire profiter de vos lumières.
Cordialement
Claude
Bonjour,
Dans le Workbook de"client.xls" j'ai mis :
Private Sub Workbook_Open
Workbooks.Open Filename.¬tiveWorkbook.Path & "travail.xls"
La macro fonctionne bien
mais pour des raisons de sécurité j'interdit l'ouverture de ce fichier travail.
La macro qui comprend d'autres instructions notamment de fermer "client" apres une temporisation rete
donc bloquée.
Quelle instruction me permettrai de continuer a executer cette macro ?
J'ajoute que je dispose dans client d'un critere de vérification de l'ouverure de "travail" que j'ai
élaboré avec dans "client"la fonction alea() recopié dans "travail" et re recopié dans "client."
Mais je suis incapable de revenir dans "client" apres l'echec de l'ouverture de "travail".
Merçi de me faire profiter de vos lumières.
Cordialement
Claude
Bonjour,
on error resume next devrait avoir l'effet désiré.
--
Amicales Salutations
XL 97 / 2000 / 2002
"claude HERRMANN" a écrit dans le message de
news:Bonjour,
Dans le Workbook de"client.xls" j'ai mis :
Private Sub Workbook_Open
Workbooks.Open Filename.¬tiveWorkbook.Path & "travail.xls"
La macro fonctionne bien
mais pour des raisons de sécurité j'interdit l'ouverture de ce fichier
travail.
La macro qui comprend d'autres instructions notamment de fermer "client"
apres une temporisation rete donc bloquée.
Quelle instruction me permettrai de continuer a executer cette macro ?
J'ajoute que je dispose dans client d'un critere de vérification de
l'ouverure de "travail" que j'ai élaboré avec dans "client"la fonction
alea() recopié dans "travail" et re recopié dans "client."
Mais je suis incapable de revenir dans "client" apres l'echec de
l'ouverture de "travail".
Merçi de me faire profiter de vos lumières.
Cordialement
Claude
Bonjour,
on error resume next devrait avoir l'effet désiré.
--
Amicales Salutations
XL 97 / 2000 / 2002
"claude HERRMANN" <chezclh@club-internet.fr> a écrit dans le message de
news: uhToZogXFHA.628@tk2msftngp13.phx.gbl...
Bonjour,
Dans le Workbook de"client.xls" j'ai mis :
Private Sub Workbook_Open
Workbooks.Open Filename.¬tiveWorkbook.Path & "travail.xls"
La macro fonctionne bien
mais pour des raisons de sécurité j'interdit l'ouverture de ce fichier
travail.
La macro qui comprend d'autres instructions notamment de fermer "client"
apres une temporisation rete donc bloquée.
Quelle instruction me permettrai de continuer a executer cette macro ?
J'ajoute que je dispose dans client d'un critere de vérification de
l'ouverure de "travail" que j'ai élaboré avec dans "client"la fonction
alea() recopié dans "travail" et re recopié dans "client."
Mais je suis incapable de revenir dans "client" apres l'echec de
l'ouverture de "travail".
Merçi de me faire profiter de vos lumières.
Cordialement
Claude
Bonjour,
on error resume next devrait avoir l'effet désiré.
--
Amicales Salutations
XL 97 / 2000 / 2002
"claude HERRMANN" a écrit dans le message de
news:Bonjour,
Dans le Workbook de"client.xls" j'ai mis :
Private Sub Workbook_Open
Workbooks.Open Filename.¬tiveWorkbook.Path & "travail.xls"
La macro fonctionne bien
mais pour des raisons de sécurité j'interdit l'ouverture de ce fichier
travail.
La macro qui comprend d'autres instructions notamment de fermer "client"
apres une temporisation rete donc bloquée.
Quelle instruction me permettrai de continuer a executer cette macro ?
J'ajoute que je dispose dans client d'un critere de vérification de
l'ouverure de "travail" que j'ai élaboré avec dans "client"la fonction
alea() recopié dans "travail" et re recopié dans "client."
Mais je suis incapable de revenir dans "client" apres l'echec de
l'ouverture de "travail".
Merçi de me faire profiter de vos lumières.
Cordialement
Claude
Bonjour,Philippe,
Cela fonctionne bien, mais...il me semble que le If Then que j'ai disposé apres en soit affeté,
autrement dit il effectue bien If ( du type = à) et se bloque sur la position else qui correspond à
une négation ?
Cela se peut-il ? Merçi si tu a des lumières sur cela également .
Merçi beaucoup, ta réponse m'as beaucoup aidé et rapidement .
Très cordialement
Claude
"Philippe.R" a écrit dans le message de news:Bonjour,
on error resume next devrait avoir l'effet désiré.
--
Amicales Salutations
XL 97 / 2000 / 2002
"claude HERRMANN" a écrit dans le message de news:Bonjour,
Dans le Workbook de"client.xls" j'ai mis :
Private Sub Workbook_Open
Workbooks.Open Filename.¬tiveWorkbook.Path & "travail.xls"
La macro fonctionne bien
mais pour des raisons de sécurité j'interdit l'ouverture de ce fichier travail.
La macro qui comprend d'autres instructions notamment de fermer "client" apres une temporisation
rete donc bloquée.
Quelle instruction me permettrai de continuer a executer cette macro ?
J'ajoute que je dispose dans client d'un critere de vérification de l'ouverure de "travail" que j'ai
élaboré avec dans "client"la fonction alea() recopié dans "travail" et re recopié dans "client."
Mais je suis incapable de revenir dans "client" apres l'echec de l'ouverture de "travail".
Merçi de me faire profiter de vos lumières.
Cordialement
Claude
Bonjour,Philippe,
Cela fonctionne bien, mais...il me semble que le If Then que j'ai disposé apres en soit affeté,
autrement dit il effectue bien If ( du type = à) et se bloque sur la position else qui correspond à
une négation ?
Cela se peut-il ? Merçi si tu a des lumières sur cela également .
Merçi beaucoup, ta réponse m'as beaucoup aidé et rapidement .
Très cordialement
Claude
"Philippe.R" <A_S_rauphil@wanadoo.fr> a écrit dans le message de news:
el6cJahXFHA.2664@TK2MSFTNGP15.phx.gbl...
Bonjour,
on error resume next devrait avoir l'effet désiré.
--
Amicales Salutations
XL 97 / 2000 / 2002
"claude HERRMANN" <chezclh@club-internet.fr> a écrit dans le message de news:
uhToZogXFHA.628@tk2msftngp13.phx.gbl...
Bonjour,
Dans le Workbook de"client.xls" j'ai mis :
Private Sub Workbook_Open
Workbooks.Open Filename.¬tiveWorkbook.Path & "travail.xls"
La macro fonctionne bien
mais pour des raisons de sécurité j'interdit l'ouverture de ce fichier travail.
La macro qui comprend d'autres instructions notamment de fermer "client" apres une temporisation
rete donc bloquée.
Quelle instruction me permettrai de continuer a executer cette macro ?
J'ajoute que je dispose dans client d'un critere de vérification de l'ouverure de "travail" que j'ai
élaboré avec dans "client"la fonction alea() recopié dans "travail" et re recopié dans "client."
Mais je suis incapable de revenir dans "client" apres l'echec de l'ouverture de "travail".
Merçi de me faire profiter de vos lumières.
Cordialement
Claude
Bonjour,Philippe,
Cela fonctionne bien, mais...il me semble que le If Then que j'ai disposé apres en soit affeté,
autrement dit il effectue bien If ( du type = à) et se bloque sur la position else qui correspond à
une négation ?
Cela se peut-il ? Merçi si tu a des lumières sur cela également .
Merçi beaucoup, ta réponse m'as beaucoup aidé et rapidement .
Très cordialement
Claude
"Philippe.R" a écrit dans le message de news:Bonjour,
on error resume next devrait avoir l'effet désiré.
--
Amicales Salutations
XL 97 / 2000 / 2002
"claude HERRMANN" a écrit dans le message de news:Bonjour,
Dans le Workbook de"client.xls" j'ai mis :
Private Sub Workbook_Open
Workbooks.Open Filename.¬tiveWorkbook.Path & "travail.xls"
La macro fonctionne bien
mais pour des raisons de sécurité j'interdit l'ouverture de ce fichier travail.
La macro qui comprend d'autres instructions notamment de fermer "client" apres une temporisation
rete donc bloquée.
Quelle instruction me permettrai de continuer a executer cette macro ?
J'ajoute que je dispose dans client d'un critere de vérification de l'ouverure de "travail" que j'ai
élaboré avec dans "client"la fonction alea() recopié dans "travail" et re recopié dans "client."
Mais je suis incapable de revenir dans "client" apres l'echec de l'ouverture de "travail".
Merçi de me faire profiter de vos lumières.
Cordialement
Claude
Bonjour Claude,
L'instruction on error resume next a pour effet de faire exécuter la ligne
de code suivant celle en erreur, en ignorant donc l'erreur.
Je ne pense du coup pas qu'il puisse y avoir un lien entre cette ligne et
le blocage que tu évoques.
Ne peux tu recopier ici le code complet du workbook_open ?
--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)
"claude HERRMANN" a écrit dans le message de
news:Bonjour,Philippe,
Cela fonctionne bien, mais...il me semble que le If Then que j'ai disposé
apres en soit affeté, autrement dit il effectue bien If ( du type = à) et
se bloque sur la position else qui correspond à une négation ?
Cela se peut-il ? Merçi si tu a des lumières sur cela également .
Merçi beaucoup, ta réponse m'as beaucoup aidé et rapidement .
Très cordialement
Claude
"Philippe.R" a écrit dans le message de news:Bonjour,
on error resume next devrait avoir l'effet désiré.
--
Amicales Salutations
XL 97 / 2000 / 2002
"claude HERRMANN" a écrit dans le message de
news:Bonjour,
Dans le Workbook de"client.xls" j'ai mis :
Private Sub Workbook_Open
Workbooks.Open Filename.¬tiveWorkbook.Path & "travail.xls"
La macro fonctionne bien
mais pour des raisons de sécurité j'interdit l'ouverture de ce fichier
travail.
La macro qui comprend d'autres instructions notamment de fermer
"client" apres une temporisation rete donc bloquée.
Quelle instruction me permettrai de continuer a executer cette macro ?
J'ajoute que je dispose dans client d'un critere de vérification de
l'ouverure de "travail" que j'ai élaboré avec dans "client"la fonction
alea() recopié dans "travail" et re recopié dans "client."
Mais je suis incapable de revenir dans "client" apres l'echec de
l'ouverture de "travail".
Merçi de me faire profiter de vos lumières.
Cordialement
Claude
Bonjour Claude,
L'instruction on error resume next a pour effet de faire exécuter la ligne
de code suivant celle en erreur, en ignorant donc l'erreur.
Je ne pense du coup pas qu'il puisse y avoir un lien entre cette ligne et
le blocage que tu évoques.
Ne peux tu recopier ici le code complet du workbook_open ?
--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)
"claude HERRMANN" <chezclh@club-internet.fr> a écrit dans le message de
news: uTkn67pXFHA.2080@TK2MSFTNGP15.phx.gbl...
Bonjour,Philippe,
Cela fonctionne bien, mais...il me semble que le If Then que j'ai disposé
apres en soit affeté, autrement dit il effectue bien If ( du type = à) et
se bloque sur la position else qui correspond à une négation ?
Cela se peut-il ? Merçi si tu a des lumières sur cela également .
Merçi beaucoup, ta réponse m'as beaucoup aidé et rapidement .
Très cordialement
Claude
"Philippe.R" <A_S_rauphil@wanadoo.fr> a écrit dans le message de news:
el6cJahXFHA.2664@TK2MSFTNGP15.phx.gbl...
Bonjour,
on error resume next devrait avoir l'effet désiré.
--
Amicales Salutations
XL 97 / 2000 / 2002
"claude HERRMANN" <chezclh@club-internet.fr> a écrit dans le message de
news: uhToZogXFHA.628@tk2msftngp13.phx.gbl...
Bonjour,
Dans le Workbook de"client.xls" j'ai mis :
Private Sub Workbook_Open
Workbooks.Open Filename.¬tiveWorkbook.Path & "travail.xls"
La macro fonctionne bien
mais pour des raisons de sécurité j'interdit l'ouverture de ce fichier
travail.
La macro qui comprend d'autres instructions notamment de fermer
"client" apres une temporisation rete donc bloquée.
Quelle instruction me permettrai de continuer a executer cette macro ?
J'ajoute que je dispose dans client d'un critere de vérification de
l'ouverure de "travail" que j'ai élaboré avec dans "client"la fonction
alea() recopié dans "travail" et re recopié dans "client."
Mais je suis incapable de revenir dans "client" apres l'echec de
l'ouverture de "travail".
Merçi de me faire profiter de vos lumières.
Cordialement
Claude
Bonjour Claude,
L'instruction on error resume next a pour effet de faire exécuter la ligne
de code suivant celle en erreur, en ignorant donc l'erreur.
Je ne pense du coup pas qu'il puisse y avoir un lien entre cette ligne et
le blocage que tu évoques.
Ne peux tu recopier ici le code complet du workbook_open ?
--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)
"claude HERRMANN" a écrit dans le message de
news:Bonjour,Philippe,
Cela fonctionne bien, mais...il me semble que le If Then que j'ai disposé
apres en soit affeté, autrement dit il effectue bien If ( du type = à) et
se bloque sur la position else qui correspond à une négation ?
Cela se peut-il ? Merçi si tu a des lumières sur cela également .
Merçi beaucoup, ta réponse m'as beaucoup aidé et rapidement .
Très cordialement
Claude
"Philippe.R" a écrit dans le message de news:Bonjour,
on error resume next devrait avoir l'effet désiré.
--
Amicales Salutations
XL 97 / 2000 / 2002
"claude HERRMANN" a écrit dans le message de
news:Bonjour,
Dans le Workbook de"client.xls" j'ai mis :
Private Sub Workbook_Open
Workbooks.Open Filename.¬tiveWorkbook.Path & "travail.xls"
La macro fonctionne bien
mais pour des raisons de sécurité j'interdit l'ouverture de ce fichier
travail.
La macro qui comprend d'autres instructions notamment de fermer
"client" apres une temporisation rete donc bloquée.
Quelle instruction me permettrai de continuer a executer cette macro ?
J'ajoute que je dispose dans client d'un critere de vérification de
l'ouverure de "travail" que j'ai élaboré avec dans "client"la fonction
alea() recopié dans "travail" et re recopié dans "client."
Mais je suis incapable de revenir dans "client" apres l'echec de
l'ouverture de "travail".
Merçi de me faire profiter de vos lumières.
Cordialement
Claude
Re bonjour Philippe,
Je me croyais plus fort, mais restons modeste et demandons aux experts.
Voilà mon code: je l'ai copié dans la bible Excellabo
____________________________________________________
'Ouverture des fichiers liés
Private Sub Workbook_Open()
On Error Resume Next
Workbooks.Open filename:¬tiveWorkbook.Path & "travail.xls"
If IsFileOpen("travail.xls") Then
MsgBox "Le classeur travail est ouvert"
Workbooks.Open filename:¬tiveWorkbook.Path & "MOTEURS.xls"
Application.DisplayAlerts = False
Quitter = True
Windows("client.xls").Activate
Sheets("Page de garde").Select
Range("A1").Select
Else
MsgBox "Le classeur travail est indisponible"
Workbooks("client.xls").Close SaveChanges:úlse
End If
End Sub
'La Fonction ==================================== :
Function IsFileOpen(filename As String)
Dim filenum As Integer, errnum As Integer
On Error Resume Next
filenum = FreeFile()
Open filename For Input Lock Read As #filenum
Close filenum
errnum = Err
On Error GoTo 0
Select Case errnum
Case 0
IsFileOpen = False
Case 70
IsFileOpen = True
Case Else
Error errnum
End Select
End Function
'Frédéric Sigonneau, El-Joker, Thierry Rural, (N°701)
____________
Quelques explications:
Le fichier travail comporte dans so Workbook un logiciel de sécurité qui
l'oblige à vérifier la présence d'une clé USB (dongle). Et le fichier est
ouvert si la clé est présente et refermé si la clé est absente.
La macro etait donc bloquée à cette hauteur avant l'implantation de On
error resume next.
Actuellement la première partie (if then) fonctionne bien , envoie le
Msgbox et ouvre les autres fichiers etc.
En l'absence de clé il y a blocage.
Maintenant que je t'explique je me rends compte que c'est le On error
resume next qui ne fonctionne pas.
Pourtant j'avais essayé egalement de fabriquer un not isopen qui passait
"travail pas ouvert" et qui me refermait le fichier de demarrage client;
donc la fonction fonctionnait. D'où ma supposition de blocage sur le else.
Clair comme du jus de ....?
Si tu ne trouve pas je me contenterai de notisopen et de la seule if then
Merçi d'avace pour le temps que tu me consacre
Tres cordialement
Claude
"Philippe.R" a écrit dans le message de news:Bonjour Claude,
L'instruction on error resume next a pour effet de faire exécuter la
ligne de code suivant celle en erreur, en ignorant donc l'erreur.
Je ne pense du coup pas qu'il puisse y avoir un lien entre cette ligne et
le blocage que tu évoques.
Ne peux tu recopier ici le code complet du workbook_open ?
--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)
"claude HERRMANN" a écrit dans le message de
news:Bonjour,Philippe,
Cela fonctionne bien, mais...il me semble que le If Then que j'ai
disposé apres en soit affeté, autrement dit il effectue bien If ( du
type = à) et se bloque sur la position else qui correspond à une
négation ?
Cela se peut-il ? Merçi si tu a des lumières sur cela également .
Merçi beaucoup, ta réponse m'as beaucoup aidé et rapidement .
Très cordialement
Claude
"Philippe.R" a écrit dans le message de news:Bonjour,
on error resume next devrait avoir l'effet désiré.
--
Amicales Salutations
XL 97 / 2000 / 2002
"claude HERRMANN" a écrit dans le message de
news:Bonjour,
Dans le Workbook de"client.xls" j'ai mis :
Private Sub Workbook_Open
Workbooks.Open Filename.¬tiveWorkbook.Path & "travail.xls"
La macro fonctionne bien
mais pour des raisons de sécurité j'interdit l'ouverture de ce fichier
travail.
La macro qui comprend d'autres instructions notamment de fermer
"client" apres une temporisation rete donc bloquée.
Quelle instruction me permettrai de continuer a executer cette macro ?
J'ajoute que je dispose dans client d'un critere de vérification de
l'ouverure de "travail" que j'ai élaboré avec dans "client"la fonction
alea() recopié dans "travail" et re recopié dans "client."
Mais je suis incapable de revenir dans "client" apres l'echec de
l'ouverture de "travail".
Merçi de me faire profiter de vos lumières.
Cordialement
Claude
Re bonjour Philippe,
Je me croyais plus fort, mais restons modeste et demandons aux experts.
Voilà mon code: je l'ai copié dans la bible Excellabo
____________________________________________________
'Ouverture des fichiers liés
Private Sub Workbook_Open()
On Error Resume Next
Workbooks.Open filename:¬tiveWorkbook.Path & "travail.xls"
If IsFileOpen("travail.xls") Then
MsgBox "Le classeur travail est ouvert"
Workbooks.Open filename:¬tiveWorkbook.Path & "MOTEURS.xls"
Application.DisplayAlerts = False
Quitter = True
Windows("client.xls").Activate
Sheets("Page de garde").Select
Range("A1").Select
Else
MsgBox "Le classeur travail est indisponible"
Workbooks("client.xls").Close SaveChanges:úlse
End If
End Sub
'La Fonction ==================================== :
Function IsFileOpen(filename As String)
Dim filenum As Integer, errnum As Integer
On Error Resume Next
filenum = FreeFile()
Open filename For Input Lock Read As #filenum
Close filenum
errnum = Err
On Error GoTo 0
Select Case errnum
Case 0
IsFileOpen = False
Case 70
IsFileOpen = True
Case Else
Error errnum
End Select
End Function
'Frédéric Sigonneau, El-Joker, Thierry Rural, (N°701)
____________
Quelques explications:
Le fichier travail comporte dans so Workbook un logiciel de sécurité qui
l'oblige à vérifier la présence d'une clé USB (dongle). Et le fichier est
ouvert si la clé est présente et refermé si la clé est absente.
La macro etait donc bloquée à cette hauteur avant l'implantation de On
error resume next.
Actuellement la première partie (if then) fonctionne bien , envoie le
Msgbox et ouvre les autres fichiers etc.
En l'absence de clé il y a blocage.
Maintenant que je t'explique je me rends compte que c'est le On error
resume next qui ne fonctionne pas.
Pourtant j'avais essayé egalement de fabriquer un not isopen qui passait
"travail pas ouvert" et qui me refermait le fichier de demarrage client;
donc la fonction fonctionnait. D'où ma supposition de blocage sur le else.
Clair comme du jus de ....?
Si tu ne trouve pas je me contenterai de notisopen et de la seule if then
Merçi d'avace pour le temps que tu me consacre
Tres cordialement
Claude
"Philippe.R" <A_S_rauphil@wanadoo.fr> a écrit dans le message de news:
ObBKiFqXFHA.252@TK2MSFTNGP12.phx.gbl...
Bonjour Claude,
L'instruction on error resume next a pour effet de faire exécuter la
ligne de code suivant celle en erreur, en ignorant donc l'erreur.
Je ne pense du coup pas qu'il puisse y avoir un lien entre cette ligne et
le blocage que tu évoques.
Ne peux tu recopier ici le code complet du workbook_open ?
--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)
"claude HERRMANN" <chezclh@club-internet.fr> a écrit dans le message de
news: uTkn67pXFHA.2080@TK2MSFTNGP15.phx.gbl...
Bonjour,Philippe,
Cela fonctionne bien, mais...il me semble que le If Then que j'ai
disposé apres en soit affeté, autrement dit il effectue bien If ( du
type = à) et se bloque sur la position else qui correspond à une
négation ?
Cela se peut-il ? Merçi si tu a des lumières sur cela également .
Merçi beaucoup, ta réponse m'as beaucoup aidé et rapidement .
Très cordialement
Claude
"Philippe.R" <A_S_rauphil@wanadoo.fr> a écrit dans le message de news:
el6cJahXFHA.2664@TK2MSFTNGP15.phx.gbl...
Bonjour,
on error resume next devrait avoir l'effet désiré.
--
Amicales Salutations
XL 97 / 2000 / 2002
"claude HERRMANN" <chezclh@club-internet.fr> a écrit dans le message de
news: uhToZogXFHA.628@tk2msftngp13.phx.gbl...
Bonjour,
Dans le Workbook de"client.xls" j'ai mis :
Private Sub Workbook_Open
Workbooks.Open Filename.¬tiveWorkbook.Path & "travail.xls"
La macro fonctionne bien
mais pour des raisons de sécurité j'interdit l'ouverture de ce fichier
travail.
La macro qui comprend d'autres instructions notamment de fermer
"client" apres une temporisation rete donc bloquée.
Quelle instruction me permettrai de continuer a executer cette macro ?
J'ajoute que je dispose dans client d'un critere de vérification de
l'ouverure de "travail" que j'ai élaboré avec dans "client"la fonction
alea() recopié dans "travail" et re recopié dans "client."
Mais je suis incapable de revenir dans "client" apres l'echec de
l'ouverture de "travail".
Merçi de me faire profiter de vos lumières.
Cordialement
Claude
Re bonjour Philippe,
Je me croyais plus fort, mais restons modeste et demandons aux experts.
Voilà mon code: je l'ai copié dans la bible Excellabo
____________________________________________________
'Ouverture des fichiers liés
Private Sub Workbook_Open()
On Error Resume Next
Workbooks.Open filename:¬tiveWorkbook.Path & "travail.xls"
If IsFileOpen("travail.xls") Then
MsgBox "Le classeur travail est ouvert"
Workbooks.Open filename:¬tiveWorkbook.Path & "MOTEURS.xls"
Application.DisplayAlerts = False
Quitter = True
Windows("client.xls").Activate
Sheets("Page de garde").Select
Range("A1").Select
Else
MsgBox "Le classeur travail est indisponible"
Workbooks("client.xls").Close SaveChanges:úlse
End If
End Sub
'La Fonction ==================================== :
Function IsFileOpen(filename As String)
Dim filenum As Integer, errnum As Integer
On Error Resume Next
filenum = FreeFile()
Open filename For Input Lock Read As #filenum
Close filenum
errnum = Err
On Error GoTo 0
Select Case errnum
Case 0
IsFileOpen = False
Case 70
IsFileOpen = True
Case Else
Error errnum
End Select
End Function
'Frédéric Sigonneau, El-Joker, Thierry Rural, (N°701)
____________
Quelques explications:
Le fichier travail comporte dans so Workbook un logiciel de sécurité qui
l'oblige à vérifier la présence d'une clé USB (dongle). Et le fichier est
ouvert si la clé est présente et refermé si la clé est absente.
La macro etait donc bloquée à cette hauteur avant l'implantation de On
error resume next.
Actuellement la première partie (if then) fonctionne bien , envoie le
Msgbox et ouvre les autres fichiers etc.
En l'absence de clé il y a blocage.
Maintenant que je t'explique je me rends compte que c'est le On error
resume next qui ne fonctionne pas.
Pourtant j'avais essayé egalement de fabriquer un not isopen qui passait
"travail pas ouvert" et qui me refermait le fichier de demarrage client;
donc la fonction fonctionnait. D'où ma supposition de blocage sur le else.
Clair comme du jus de ....?
Si tu ne trouve pas je me contenterai de notisopen et de la seule if then
Merçi d'avace pour le temps que tu me consacre
Tres cordialement
Claude
"Philippe.R" a écrit dans le message de news:Bonjour Claude,
L'instruction on error resume next a pour effet de faire exécuter la
ligne de code suivant celle en erreur, en ignorant donc l'erreur.
Je ne pense du coup pas qu'il puisse y avoir un lien entre cette ligne et
le blocage que tu évoques.
Ne peux tu recopier ici le code complet du workbook_open ?
--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)
"claude HERRMANN" a écrit dans le message de
news:Bonjour,Philippe,
Cela fonctionne bien, mais...il me semble que le If Then que j'ai
disposé apres en soit affeté, autrement dit il effectue bien If ( du
type = à) et se bloque sur la position else qui correspond à une
négation ?
Cela se peut-il ? Merçi si tu a des lumières sur cela également .
Merçi beaucoup, ta réponse m'as beaucoup aidé et rapidement .
Très cordialement
Claude
"Philippe.R" a écrit dans le message de news:Bonjour,
on error resume next devrait avoir l'effet désiré.
--
Amicales Salutations
XL 97 / 2000 / 2002
"claude HERRMANN" a écrit dans le message de
news:Bonjour,
Dans le Workbook de"client.xls" j'ai mis :
Private Sub Workbook_Open
Workbooks.Open Filename.¬tiveWorkbook.Path & "travail.xls"
La macro fonctionne bien
mais pour des raisons de sécurité j'interdit l'ouverture de ce fichier
travail.
La macro qui comprend d'autres instructions notamment de fermer
"client" apres une temporisation rete donc bloquée.
Quelle instruction me permettrai de continuer a executer cette macro ?
J'ajoute que je dispose dans client d'un critere de vérification de
l'ouverure de "travail" que j'ai élaboré avec dans "client"la fonction
alea() recopié dans "travail" et re recopié dans "client."
Mais je suis incapable de revenir dans "client" apres l'echec de
l'ouverture de "travail".
Merçi de me faire profiter de vos lumières.
Cordialement
Claude