test ouverture fichier en réseau

armelle1303

XLDnaute Junior
bonjour à tous et meilleurs voeux pour 2010

Me voici à nouveau avec un problème de test d'ouverture de classeur mais en réseau : j'avais eu une réponse satisfaisante mais je me suis aperçue que cela ne fonctionne que sur l'ordi local. Je m'explique :
2 personnes travaillent sur un fichier en réseau, je fais le test d'ouverture sur A et si le fichier est ouvert par la personne A cela marche (détecte bien déja ouvert) mais si il est ouvert par B , cela ne le détecte pas comme ouvert.

Je pense que c'est parce que je donne uniquement le nom du fichier et pas son chemin.

Après différentes recherches, j'ai 3 exemples qui fonctionnent en local mais je ne sais pas comment y intégrer une variable ( avec isfile open cela doit être une chaine de caractères uniquement, idem avec workbook.Name).

j'ai bien compris que je pouvais faire un truc en gérant les Err mais j'ai le même problème .
donc comment trouver une propriété (je ne sais pas si c'est le bon terme vba) qui permet d'inclure une variable dans le nom et qui renvoie une erreur??
j'ai bien essayé avec workbook open mais comme je lui dit d'ouvrir le fichier il me dit forcément qu'il est ouvert!!!
ben oui faut bien essayer quand on connait pas ; l'apprentissage par l'erreur peut être bénéfique mais là je tourne en rond.

Vous trouverez en PJ le classeur avec les différentes versions de code.

Merci à tous
 

Pièces jointes

  • Classeur1.xls
    31 KB · Affichages: 83
  • Classeur1.xls
    31 KB · Affichages: 91
  • Classeur1.xls
    31 KB · Affichages: 90

jeanpierre

Nous a quitté
Repose en paix
Re : test ouverture fichier en réseau

Bonsoir armelle1303,

Le problème des fichiers partagés.

Le VBA ne fait pas, forcément, copain-copain avec le partage... loin de là...
Je n'ai plus de réseau pour tester mais ton problème doit venir de là.

Bonne année.

Jean-Pierre
 

armelle1303

XLDnaute Junior
Re : test ouverture fichier en réseau

Bonsoir jean pierre
en fait je pense que cela peut marcher :au pire j'indiquerai le chemin en toutes lettres mais le but est de pouvoi éviter de modifier le code si le nom du fichier source change (tous les ans par exemple)
et je voudrais bien pouvoir utiliser une variable = ThisWorkbook.Path dans mon test.
enfin, je n'arrete pas mes recherches sur les types d'erreur ainsi que les instructions .
et je ne désespère pas de l'aide de quelqu'un qui a déja eu le même problème.
il doit bien y avoir une astuce pour contourner le problème.

Merci
bonne soirée
 

armelle1303

XLDnaute Junior
Re : test ouverture fichier en réseau

bonsoir

en fait trop nulle ou le cerveau encore en vacances
mon problème était avec ma variable

mais j'avais tout simplement oublié de la déclarer en string

apparemment cela fonctionne avec le code suivant quelque soit l'endroit où est stocké mon fichier.
enfin cela reste à confirmer quand je disposerai d'un réseau.


Sub TestOuverture()

'test si C2 est ouvert
'si non , arrete le test et continue la macro
'si oui, affiche msg box qui propose de reessayer en recommençant le test
Dim chemintest As String


1: chemintest = ThisWorkbook.Path


If IsFileOpen(chemintest & "\C2.xls") Then

retour = MsgBox("la base est déja ouverte. Cliquez sur le bouton Ok pour réessayer!", vbOKCancel)
If retour = vbOK Then

Application.StatusBar = "Merci de patienter"
Application.Wait Now + TimeValue("00:00:05")
Application.StatusBar = False


GoTo 1:
Else
Exit Sub

End If

End If
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




voilà
en fait j'avais la solution sous les yeux depuis un bout de temps , et juste ma variable à déclarer.

bon ben je crois que je n'ai plus qu'à aller me coucher.
Miles excuses
 

jeanpierre

Nous a quitté
Repose en paix
Re : test ouverture fichier en réseau

Re,

Pas d'excuses, nous sommes tous à nous poser des questions quelquefois,, le principal c'est que cela fonctionne... A confirmer toutefois sur réseau partagé. Je me méfie beaucoup du partage.

Bonne nuit.

Jean-Pierre
 

armelle1303

XLDnaute Junior
Re : test ouverture fichier en réseau (résolu)

Bonsoir à tous

je confirme le code ci dessus fonctionne en réseau.
les fichiers sont disposés sur un serveur.
lorsque l'ordi A ouvre le fichier, B le détecte comme ouvert (ainsi que si il est ouvert sur A bien sur)
et vis versa

Merci à ceux qui ont fourni la partie principale du code que j'ai trouvé sur plusieurs sites ; je n'ai fait qu'ajouter une variable.
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof