Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

erreur d'accés à un classeur non partagé déjà ouvert

2 réponses
Avatar
Le Nordiste
Bonjour tertous,

Dans une proc=E9dure je recopie une page d'un classeur non partag=E9
grace au code suivant :

Set shtFeuille =3D GetObject(strChemin & "\" &
strFichierSource).Sheets(strFeuilleSource)

GetObject(strChemin & "\" _
& strFichierSource).Sheets(strFeuilleSource).Copy after:=3D _
ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)


Quand ce classeur est ouvert sur un autre poste de travail cela me
donne une erreur.
Comment passer outre ou mieux comment r=E9cup=E9rer le code d'erreur pour
en d=E9duire un avertissement =E0 l'utilisateur par exemple ?


Merci de vous int=E9resser =E0 mon probl=E9me.


Le Nordiste.

2 réponses

Avatar
Youky
Set shtFeuille = GetObject(strChemin & "" & _
strFichierSource).Sheets(strFeuilleSource)
On Error Resume Next
shtFeuille.Copy after:= ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
If Err<>0 then
Err=0
MsgBox "Le fichier est en cours d'utilisation....!....bye bye!": Exit sub
End If
'et la suite si c'est bon
Youky

"Le Nordiste" a écrit dans le message de
news:
Bonjour tertous,

Dans une procédure je recopie une page d'un classeur non partagé
grace au code suivant :

Set shtFeuille = GetObject(strChemin & "" &
strFichierSource).Sheets(strFeuilleSource)

GetObject(strChemin & "" _
& strFichierSource).Sheets(strFeuilleSource).Copy after:= _
ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)


Quand ce classeur est ouvert sur un autre poste de travail cela me
donne une erreur.
Comment passer outre ou mieux comment récupérer le code d'erreur pour
en déduire un avertissement à l'utilisateur par exemple ?


Merci de vous intéresser à mon probléme.


Le Nordiste.
Avatar
michdenis
Bonjour Le nordiste,

Évidemment la feuille que tu tentes de copier doit exister
la procédure ne teste pas directement son existence !

'---------------------------------------
Sub test()

Dim Wk As Workbook
Dim strChemin As String
Dim strFichierSource As String
Dim strFeuilleSource As String

strChemin = "c:"
strFichierSource = "classeur1.xls"
strFeuilleSource = "Feuil1"

On Error Resume Next
Set Wk = Workbooks(strFichierSource)
If Not Wk Is Nothing Then
Err = 0
MsgBox "Ce fichier est déjà ouvert."
Else
Application.ScreenUpdating = False
With Workbooks.Open(strChemin & "" & strFichierSource)
.Sheets(strFeuilleSource).Copy after:= _
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
.Close False
End With
End If

End Sub
'---------------------------------------


Salutations!


"Le Nordiste" a écrit dans le message de news:

Bonjour tertous,

Dans une procédure je recopie une page d'un classeur non partagé
grace au code suivant :

Set shtFeuille = GetObject(strChemin & "" &
strFichierSource).Sheets(strFeuilleSource)

GetObject(strChemin & "" _
& strFichierSource).Sheets(strFeuilleSource).Copy after:= _
ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)


Quand ce classeur est ouvert sur un autre poste de travail cela me
donne une erreur.
Comment passer outre ou mieux comment récupérer le code d'erreur pour
en déduire un avertissement à l'utilisateur par exemple ?


Merci de vous intéresser à mon probléme.


Le Nordiste.