OVH Cloud OVH Cloud

On error resume next.....

4 réponses
Avatar
Denys
Bonjour =E0 tous,

J'ai fait une application que plusieurs employ=E9s utilisent=20
(pas la m=EAme, mais chacun la sienne).

Cependant, en cliquant sur un bouton de commande,=20
l'information inscrite se transpose dans une fili=E8re=20
maitresse, qui celle-l=E0 est la m=EAme pour tout le monde.

Les instructions font que Excel ouvre la "Master File" et=20
y copie les donn=E9es. Sauf que si 2 employ=E9s transf=E8rent=20
les donn=E9es en m=EAme temps, celui qui arrive en second=20
re=E7oit une message d'erreur d'Excel car il ne peut ouvrir=20
le Master File, =E9tant d=E9j=E2 ouvert par un autre usager.

Je me demandais quelle instruction mettre afin que si le=20
Master File est d=E9j=E0 ouvert, d'ignorer les commades=20
suivantes.... Est-ce que On error resume next peut faire=20
l'affaire...

Voici une partie du code...

Sub Trsf()
Workbooks.Open Filename:=3D"W:\MFRP Tax Slips\2004=20
Tax Slips\Master File\MF-T4RSP.xls"
Windows("T4RSP.xls").Activate
Sheets("Database").Select
Range("A3:AC3").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Cut
Windows("MF-T4RSP.xls").Activate
Range("A2").Select
etc......
end sub

Merci pour votre aide...

Denys

4 réponses

Avatar
papou
Bonjour Denys
Si ce que tu appelles ouvre le Master File correspond à la ligne :
Workbooks.Open Filename:="W:MFRP Tax Slips2004 Tax SlipsMaster
FileMF-T4RSP.xls"
alors :
On Error Resume Next
Workbooks.Open Filename:="W:MFRP Tax Slips2004 Tax SlipsMaster
FileMF-T4RSP.xls"
If Err Then Exit Sub

Cordialement
Pascal

"Denys" a écrit dans le message de
news:229e01c3fc6d$da685010$
Bonjour à tous,

J'ai fait une application que plusieurs employés utilisent
(pas la même, mais chacun la sienne).

Cependant, en cliquant sur un bouton de commande,
l'information inscrite se transpose dans une filière
maitresse, qui celle-là est la même pour tout le monde.

Les instructions font que Excel ouvre la "Master File" et
y copie les données. Sauf que si 2 employés transfèrent
les données en même temps, celui qui arrive en second
reçoit une message d'erreur d'Excel car il ne peut ouvrir
le Master File, étant déjâ ouvert par un autre usager.

Je me demandais quelle instruction mettre afin que si le
Master File est déjà ouvert, d'ignorer les commades
suivantes.... Est-ce que On error resume next peut faire
l'affaire...

Voici une partie du code...

Sub Trsf()
Workbooks.Open Filename:="W:MFRP Tax Slips2004
Tax SlipsMaster FileMF-T4RSP.xls"
Windows("T4RSP.xls").Activate
Sheets("Database").Select
Range("A3:AC3").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Cut
Windows("MF-T4RSP.xls").Activate
Range("A2").Select
etc......
end sub

Merci pour votre aide...

Denys
Avatar
Denys
Salut Pascal,

Merci infiniment....Tu m'enlèves une épine du pied...

Bonne journée

Denys

-----Original Message-----
Bonjour Denys
Si ce que tu appelles ouvre le Master File correspond à
la ligne :

Workbooks.Open Filename:="W:MFRP Tax Slips2004 Tax
SlipsMaster

FileMF-T4RSP.xls"
alors :
On Error Resume Next
Workbooks.Open Filename:="W:MFRP Tax Slips2004 Tax
SlipsMaster

FileMF-T4RSP.xls"
If Err Then Exit Sub

Cordialement
Pascal

"Denys" a écrit
dans le message de

news:229e01c3fc6d$da685010$
Bonjour à tous,

J'ai fait une application que plusieurs employés utilisent
(pas la même, mais chacun la sienne).

Cependant, en cliquant sur un bouton de commande,
l'information inscrite se transpose dans une filière
maitresse, qui celle-là est la même pour tout le monde.

Les instructions font que Excel ouvre la "Master File" et
y copie les données. Sauf que si 2 employés transfèrent
les données en même temps, celui qui arrive en second
reçoit une message d'erreur d'Excel car il ne peut ouvrir
le Master File, étant déjâ ouvert par un autre usager.

Je me demandais quelle instruction mettre afin que si le
Master File est déjà ouvert, d'ignorer les commades
suivantes.... Est-ce que On error resume next peut faire
l'affaire...

Voici une partie du code...

Sub Trsf()
Workbooks.Open Filename:="W:MFRP Tax Slips2004
Tax SlipsMaster FileMF-T4RSP.xls"
Windows("T4RSP.xls").Activate
Sheets("Database").Select
Range("A3:AC3").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Cut
Windows("MF-T4RSP.xls").Activate
Range("A2").Select
etc......
end sub

Merci pour votre aide...

Denys


.



Avatar
michdenis
Bonjour Denys,

Copie ceci dans un module standard et exécute la premièr macro.

"la fonction fut publiée ici et fut mise à jour à l'aide des MPFE suivants:
( El-Joker, Frédéric Sigonneau et Thierry Rural )
(je n'ai pas le nom de l'usager qui a requis cette macro)

'---------------------------------
Sub MacroÀExécuter()
Dim Msg, Style, Title, Fichier as String
Fichier:="W:MFRP Tax Slips2004 Tax SlipsMaster FileMF-T4RSP.xls"

If IsFileOpen(Fichier) Then
MsgBox "File Already in use" & Chr(13) & "Please Try Latter"
Else
Trsf
End If
End Sub
'-------------------------------

Sub Trsf()
Workbooks.Open Filename:="W:MFRP Tax Slips2004
Tax SlipsMaster FileMF-T4RSP.xls"
Windows("T4RSP.xls").Activate
Sheets("Database").Select
Range("A3:AC3").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Cut
Windows("MF-T4RSP.xls").Activate
Range("A2").Select
etc......
end sub
'---------------------------------

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
'---------------------------------


Salutations!


"Denys" a écrit dans le message de news:229e01c3fc6d$da685010$
Bonjour à tous,

J'ai fait une application que plusieurs employés utilisent
(pas la même, mais chacun la sienne).

Cependant, en cliquant sur un bouton de commande,
l'information inscrite se transpose dans une filière
maitresse, qui celle-là est la même pour tout le monde.

Les instructions font que Excel ouvre la "Master File" et
y copie les données. Sauf que si 2 employés transfèrent
les données en même temps, celui qui arrive en second
reçoit une message d'erreur d'Excel car il ne peut ouvrir
le Master File, étant déjâ ouvert par un autre usager.
Sub Trsf()
Workbooks.Open Filename:="W:MFRP Tax Slips2004
Tax SlipsMaster FileMF-T4RSP.xls"
Windows("T4RSP.xls").Activate
Sheets("Database").Select
Range("A3:AC3").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Cut
Windows("MF-T4RSP.xls").Activate
Range("A2").Select
etc......
end sub

Je me demandais quelle instruction mettre afin que si le
Master File est déjà ouvert, d'ignorer les commades
suivantes.... Est-ce que On error resume next peut faire
l'affaire...

Voici une partie du code...


Merci pour votre aide...

Denys
Avatar
Denys
Bonjour Denis,

Excellente idée.....Merci beaucoup...Petite question
cependant... La fonction est-ce que je la mets dans un
module ou sur la Feuille2 où elle doit s'exécuter ?

Je suis un peu mêlé avec les fonctions...

Merci encore pour ton aide

Denys


-----Original Message-----
Bonjour Denys,

Copie ceci dans un module standard et exécute la premièr
macro.


"la fonction fut publiée ici et fut mise à jour à l'aide
des MPFE suivants:

( El-Joker, Frédéric Sigonneau et Thierry Rural )
(je n'ai pas le nom de l'usager qui a requis cette macro)

'---------------------------------
Sub MacroÀExécuter()
Dim Msg, Style, Title, Fichier as String
Fichier:="W:MFRP Tax Slips2004 Tax SlipsMaster FileMF-
T4RSP.xls"


If IsFileOpen(Fichier) Then
MsgBox "File Already in use" & Chr(13) & "Please Try
Latter"

Else
Trsf
End If
End Sub
'-------------------------------

Sub Trsf()
Workbooks.Open Filename:="W:MFRP Tax Slips2004
Tax SlipsMaster FileMF-T4RSP.xls"
Windows("T4RSP.xls").Activate
Sheets("Database").Select
Range("A3:AC3").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Cut
Windows("MF-T4RSP.xls").Activate
Range("A2").Select
etc......
end sub
'---------------------------------

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
'---------------------------------


Salutations!


"Denys" a écrit
dans le message de news:229e01c3fc6d$da685010

$
Bonjour à tous,

J'ai fait une application que plusieurs employés utilisent
(pas la même, mais chacun la sienne).

Cependant, en cliquant sur un bouton de commande,
l'information inscrite se transpose dans une filière
maitresse, qui celle-là est la même pour tout le monde.

Les instructions font que Excel ouvre la "Master File" et
y copie les données. Sauf que si 2 employés transfèrent
les données en même temps, celui qui arrive en second
reçoit une message d'erreur d'Excel car il ne peut ouvrir
le Master File, étant déjâ ouvert par un autre usager.
Sub Trsf()
Workbooks.Open Filename:="W:MFRP Tax Slips2004
Tax SlipsMaster FileMF-T4RSP.xls"
Windows("T4RSP.xls").Activate
Sheets("Database").Select
Range("A3:AC3").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Cut
Windows("MF-T4RSP.xls").Activate
Range("A2").Select
etc......
end sub

Je me demandais quelle instruction mettre afin que si le
Master File est déjà ouvert, d'ignorer les commades
suivantes.... Est-ce que On error resume next peut faire
l'affaire...

Voici une partie du code...


Merci pour votre aide...

Denys


.