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

VBA Word Discussion :

Ouvrir un fichier Excel en lecture seule


Sujet :

VBA Word

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Ouvrir un fichier Excel en lecture seule
    Bonjour

    Petite précision : je suis très novice !

    Voila ce que je souhaiterais faire. J'ai créé une macro Word qui doit ouvrir un fichier Excel, mais en lecture seule. En plus, quand on utilise cette macro et que le fichier Excel s'ouvre, on ne doit pas voir de fenêtre du genre "Ce fichier n'est disponible qu'en lecture seule, voulez vous continuer".

    Avez vous des idées, car je suis complètement perdu !

    Merci grandement pour votre aide.

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Bonjour et bienvenue sur les forums de DVP.

    En cochant la référence à la bibliothèque Microsoft Excel x.0, tu bénéficies de l'aide syntaxique sur les objets que tu utilises, et tu peux utiliser le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Ouvrir()
     
        Dim xl As Excel.Application
     
        Set xl = New Excel.Application
        xl.Visible = True
        xl.Workbooks.Open FileName:="d:\données\classeur1.xls", ReadOnly:=xlYes
    End Sub
    Si tu souhaites utiliser le classeur au sein du code de ta macro, crée un objet de ce type pour le manipuler, par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Ouvrir()
     
        Dim xl As Excel.Application
        Dim wb As Excel.Workbook
     
        Set xl = New Excel.Application
        xl.Visible = True
        Set wb = xl.Workbooks.Open(FileName:="d:\données\classeur1.xls", ReadOnly:=xlYes)
        wb.SaveAs "d:\données\blabla.xls"
     
    End Sub
    Si tu n'as pas coché la référence à Excel ou que tu ne peux pas le faire facilement (compatibilité de version), tu peux utiliser un objet non typé, mais tu n'auras pas l'aide syntaxique et tu devras donc la connaître. Tu ne pourras pas non plus utiliser la constante xlYes et tu devras donc la remplacer par sa valeur, à savoir 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Ouvrir()
     
        Dim xl As Object
        Dim wb As Object
     
        Set xl = CreateObject("Excel.Application")
        xl.Visible = True
        Set wb = xl.Workbooks.Open(FileName:="d:\données\classeur1.xls", ReadOnly:=1)
     
    End Sub
    Ok?

  3. #3
    Candidat au Club
    Inscrit en
    Septembre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci pour ton aide ! C'est très bien expliqué pour un débutant comme moi.

    Pourrais-je poser une autre question ? Comment faire pour que la macro ne lance pas le fichier Excel s'il est déjà ouvert ?

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Quelle est la finalité de ta question ?
    Si tu souhaites l'ouvrir en lecture seule, il peut être ouvert et modifié, de toutes façons tu ne pourras pas l'enregistrer sous le même nom.
    Veux-tu simplement savoir si un autre utilisateur l'a ouvert afin d'attendre qu'il le ferme ?

  5. #5
    Candidat au Club
    Inscrit en
    Septembre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    C'est parce que l'utilisateur peut lancer la macro plusieurs fois de suite, et qu'il risque donc de voir le fichier Excel s'afficher plusieurs fois, ce qui est un peu génant...

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Ok, alors teste ça
    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
    Sub OuvertClosOuiNon()
    Dim xlApp As Object
    Dim xlCL1 As Object
        Set xlApp = CreateObject("Excel.Application")
     
        On Error Resume Next
            Set xlApp = GetObject(, "Excel.Application")
            'si le fichier est fermé, génère une erreur
            Set xlCL1 = xlApp.Workbooks("NomDuClasseur.xls")
        On Error GoTo 0
     
        If xlCL1 Is Nothing Then
            MsgBox "Classeur fermé"
            Else
            MsgBox "Classeur ouvert"
        End If
        'xlApp.Quit 'pour fermer l'instance de l'appli Excel
        Set xlApp = Nothing
        Set xlCL1 = Nothing
    End Sub
    Tu sauras adapter ?
    Bon après-midi

  7. #7
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Je ne sais pas ce que tu veux faire avec ton fichier, mais si c'est pour récupérer des données pour les utiliser dans Word, tu peux ouvrir ton fichier, récupérer les données et fermer le fichier, les temps d'accès sont alors assez court et les télescopages assez réduits.

  8. #8
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut,

    En effet, je suis d'accord avec Heureux-Oli, et dans ce cas, tu n'as même pas besoin d'ouvrir en lecture seule ton Excel, il suffit de le fermer sans sauvegarder (c'est encore plus rapide et tu n'as pas les pb de fenêtre d'avertissement du type "Voulez-vous ouvrir en lecture seule ?"

    @+

  9. #9
    Candidat au Club
    Inscrit en
    Septembre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci, tout fonctionne !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ouvrir un fichier excel en lecture seule via VBA
    Par mbellemax dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/12/2017, 13h35
  2. [DATA] Ouvrir un fichier excel en lecture seule via SAS
    Par Caro0702 dans le forum SAS Base
    Réponses: 1
    Dernier message: 29/11/2012, 05h32
  3. [VB6] Fichier excel en lecture seul et détection fermeture
    Par belfaigore dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 17/05/2006, 11h48
  4. Réponses: 1
    Dernier message: 26/01/2006, 18h16
  5. Ouvrir un fichier word en lecture seule
    Par yoyo30 dans le forum Access
    Réponses: 11
    Dernier message: 09/09/2005, 10h25

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