IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[Ouverture Fichier] ouvrir un fichier en ecriture (verifie si un autre utilisateur l'utilise déjà)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Par défaut [Ouverture Fichier] ouvrir un fichier en ecriture (verifie si un autre utilisateur l'utilise déjà)
    Bonjour,

    J'utilise beaucoup votre forum et j'apprecie beaucoup toutes les informations que je peux retrouver, Merci encore =)

    J'ai regroupé plusieurs solutions qui englobent mon problème dans un sujet car je n'ai pas trouvé un sujet qui répondait à toutes les questions en même temps

    - Verifier que le fichier Existe
    - Verifier qu'il n'est pas déjà ouvert
    - Verifier un autre utilisateur l'utilise déjà

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Set TestFichier = CreateObject("Scripting.FileSystemObject")
     
    'Verifie l'existance du fichier
    If TestFichier.FileExists(DossierRecap & Recap) = False then MsgBox "Le Fichier n'est pas a l'endroit attendu " DossierRecap & Recap
    'Verifie que le fichier n'est pas ouvert dans le classeur
    On Error resume Next
    Workbooks(Recap).Activate
    If Err <>0 then Workbooks(DossierRecap & Recap).Open, ReadOnly := False
    'Verifie qu'un autre utilisateur ne l'utilise pas déjà
    If Workbooks(Recap).readOnly = true then
    <div style="margin-left:40px">MsgBox "Le Fichier " & Recap & " est déjà utilisé. Merci de le fermer et de relancer la macro"
    Workbooks(Recap).close
    Exit Sub</div>End If

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    Behhh oui, c'est très bien.. MAIS QUEL EST LA QUESTION ??
    A+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Par défaut
    Y'a pas de questions que des solutions =)

    En fait le problème c'est : Comment s'assurer qu'on ouvre un fichier en Ecriture ?
    La macro permet de
    >> Verifier que le Fichier Existe
    >> Que le fichier n'est pas déjà ouvert (auquel cas pas besoin de le réouvrir)
    >> De l'ouvrir
    >> Si un utilisateur l'utilise déjà le fichier sera en lecture seule
    >> Message d'erreur pour dire qu'un utilisateur utilise déjà le fichier

    A la fin de la macro on est sur d'une chose :
    Le Fichier est ouvert en Ecriture

    Encore mieux, je vous livre la fonction en entier

    OuvreFichierEcriture (Chemin, Fichier ) = False si on a pas reussi
    Très utile et je l'utilise dans toutes mes macros

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Function OuvreFichierEcriture(ByVal Chemin As String, ByVal Fichier As String) As Boolean
     
    Set TestFichier = CreateObject("Scripting.FileSystemObject")
    'Est ce que le Fichier de Fichier est au bon endroit
    If TestFichier.FileExists(Chemin & Fichier) = False Then
        MsgBox "Le Fichier " & Fichier & " n'est pas au bon endroit : " & Chr(13) & Chemin & Chr(13) & Chr(13) & _
        "Merci de corriger puis relancer la macro" & Chr(13), vbExclamation + vbOKOnly, "Problème Fichier inexistant"
        OuvreFichierEcriture = False
        Exit Function
    End If
    'Est ce que le Fichier de Fichier est déjà ouvert
    On Error Resume Next
    Workbooks(Fichier).Activate
    If Err <> 0 Then Workbooks.Open (Chemin & Fichier), ReadOnly:=False
    'Est ce que le Fichier de Fichier est déjà utilisé Err = 9
    If Workbooks(Fichier).ReadOnly = True Then
        MsgBox "Le fichier " & Fichier & " est déjà utilisé : " & Workbooks(Fichier).BuiltinDocumentProperties(7).Value & Chr(13) & "Merci de vous assurer que personne n'utilise le fichier", vbInformation + vbOKOnly, "Fichier déjà utilisé"
        Workbooks(Fichier).Close
        OuvreFichierEcriture = False
        Exit Function
    End If
     
    OuvreFichierEcriture = True
    End Function

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    tu as mal cherché ...
    Vois mon message n° 2 ici :
    http://www.developpez.net/forums/d67...stion-derreur/
    En appelant ton attention sur le fait qu'en cas de non existence du fichier, cette méthode permet de le savoir (analyse le code calmement).

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Par défaut
    En effet, ca a l'air pas mal comme solution aussi

    Comme quoi tous les chemins mènent à Rome

    Je ne suis pas encore expert en VBA... ma solution est plutot basique:p
    n'avais pas trouvé ta solution quand je cherchais
    -ouvrir classeur en ecriture
    -verifier si un utilisateur utilise un fichier
    -verifier existance fichier...

Discussions similaires

  1. Réponses: 15
    Dernier message: 28/11/2008, 17h57
  2. Réponses: 6
    Dernier message: 09/06/2008, 12h43
  3. [Fichier]ouvrir un fichier owl en java
    Par JavaNulles dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 04/08/2006, 09h26
  4. Réponses: 6
    Dernier message: 20/10/2005, 08h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo