OVH Cloud OVH Cloud

Workbook_Open

5 réponses
Avatar
claude HERRMANN
Bonjour,

Dans le Workbook de"client.xls" j'ai mis :

Private Sub Workbook_Open
Workbooks.Open Filename.=ActiveWorkbook.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

5 réponses

Avatar
Philippe.R
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



Avatar
claude HERRMANN
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






Avatar
Philippe.R
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










Avatar
claude HERRMANN
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













Avatar
claude HERRMANN
Excuse moi Philippe,
En recherchant dans mes documentations j'ai retrouvé des questions
identiques auquelles toi et Le Steph avaient répondu.
Entretemps j'avais exploré d'autres pistes qui ont également un problème.
Toutes mes excuses, j'ai manqué de patience et de réfexion, il n'est pas
correct de poser deux fois les mêmes questions.
Je vais donc reprendre tout ceci a tête reposée.
Merçi encore

Amicales salutations
Claude



"claude HERRMANN" a écrit dans le message de
news:
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