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 :

[VBA-E]ouvrir feuille excel en lecture seule


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Points : 196
    Points
    196
    Par défaut [VBA-E]ouvrir feuille excel en lecture seule
    bonjour
    j'ai un code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Range("G" & lastline + 7).Select
            ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
            "C:\Documents and Settings\avaysse\Mes documents\" & FileList(i)
            Selection.Hyperlinks(1).TextToDisplay = "consulter"
            Selection.Hyperlinks(1).ScreenTip = FileList(i)
    qui me permet de créer un lien pour ouvrir un document .xls... je voudrai savoir coment faire pour que se fichier s'ouvre en mode " lecture seule "
    merci

  2. #2
    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
    Soit tu fais "Enregistrer sous" -> "Options" -> "Lecture seule recommandé"
    et tu mets un mot de passe sur la bonne ligne, soit tu le fais par code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        ActiveWorkbook.SaveAs FileName:="D:\xls\zizou.xls", FileFormat:=xlNormal, _
            Password:="zizou", WriteResPassword:="", ReadOnlyRecommended:=True, _
            CreateBackup:=False
    Fait en enregistrant la macro !!!! Ben alors !

    A+

  3. #3
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Points : 196
    Points
    196
    Par défaut
    j'ai honte d'abitude je teste d'abord une macro desolé un peu dans les vapes se soir

  4. #4
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Points : 196
    Points
    196
    Par défaut
    je vien de regardder se que tu mas dit mais je me rend compte que sa passerai la feuille en leecture seule ( de maniere " definitive" ) hors je veus juste quelle soit en lecture seule quand je passe par le lien quele reste du temp sont " mode " ne change pas

  5. #5
    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
    Alors ce n'est pas l'option "en lecture seule" mais l'option protection d'une feuille,cépapareil...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        ActiveSheet.Protect Password:="zizou", DrawingObjects:=True, Contents:=True, Scenarios:=True
    Tu peux aussi faire ça par macro.
    Pour déprotéger, tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Unprotect password:="zizou"
    Tu peux préciser les différentes parties à protéger et tu mets un condition pour déprotéger, tu fais tes petites affaires et tu reprotèges. Tu n'es pas obligé de mettre un mot de passe.
    Essaie d'enregistrer la macro -> Outils ->Protection, tu verras plus clair.

    A+

    PS - Ça donne quoi pour le nom des boutons ?

  6. #6
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Points : 196
    Points
    196
    Par défaut
    merci
    j'ai fait un code comme sa
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Range("G" & lastline + 7).Select
            ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
            "C:\Documents and Settings\avaysse\Mes documents\" & FileList(i)
            ActiveSheet.Protect Password:="zizou", DrawingObjects:=True, Contents:=True, Scenarios:=True
            Selection.Hyperlinks(1).TextToDisplay = "consulter"
            Selection.Hyperlinks(1).ScreenTip = FileList(i)
            if ' si le document est fermé 
            then
            ActiveSheet.Unprotect Password:="zizou"
    comment testé l'ouverture ou la fermeture d'un fichier .xls?

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 23
    Points : 28
    Points
    28
    Par défaut
    essai en mettant ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Workbooks.Open "monfichier.xls", ReadOnly:=True
    tiens moi au courant.

  8. #8
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Points : 196
    Points
    196
    Par défaut
    bonjour je vien de testé sa...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
            "C:\Documents and Settings\avaysse\Mes documents\" & FileList(i) , ReadOnly:=True
    mais il ne me crée meme plus mon lien j'ai fait le test diferament etc'est bien un Readonly qu'il me faut.. mais ou le metre ?

    merci

  9. #9
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Si le readOnly doit être définitif : pourquoi ne pas modifier tout simplement les attributs du fichier ?

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    parcequ'en l'occurence le readOnly ne doit pas être définitif, il ne concerne qu'une visualisation du ficher ...

  11. #11
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Tiens !
    Ma foi !
    Les attributs peuvent également être modifiés à la demande, et ce avant même l'ouverture du fichier. Je crois bien avoir parlé à plusieurs reprises de la macro spéciale AutoOpen. Je crois bien avoir également signalé un lien très clair à ce sujet.
    Mais bon... Continuons donc à chercher à modifier... après l'ouverture.. ma foi !

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    oui mais là il s'agit en fait de créer un résumé des fichier exisants ...
    modifier les attribus du fichier est dangeurerux car sil l'attribut n'est pas réinitialisé pour une raison quelconque (plantage par exempl) le fichier restera en readOnly ...
    l'accès aux attributs du fichier n'est pas donné à tout le monde. ..

  13. #13
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Bon !....

  14. #14
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2006
    Messages : 70
    Points : 71
    Points
    71
    Par défaut
    Tu ne peux pas ouvrir un classeur en "lecture seule".
    Il faut l'enregistrer en lecture seule et bien sur cet état ce retrouve à l'ouverture du classeur.

    Pour réaliser ce que tu veux :
    ouvrir ton classeur normalement et dans le code de "Thisworkbook"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Workbook_Open()
      ' Faire une boucle sur toutes les feuilles de ton classeur et positionner :
       Worksheets("NomFeuilleEnCours").Protect password:="MotDePasse"
    End Sub
    Faire ton traitement et avant de fermer ton classeur il faut executer la même boucle sur toutes les feuilles de ton classeur et positionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       Worksheets("NomFeuilleEnCours").Unprotect password:="MotDePasse"
    Merci de faire un petit "coucou" si cela ta aider.
    Bon courage

  15. #15
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Points : 196
    Points
    196
    Par défaut
    bonjour

    la solution de readonly devrais marchéje l'ai testé et quand je demande l'ouverture d'un fichier en "readonly" sa passe

    mon probleme vien du fait que quand j'apelle mon classeur par un click sur un lien bin sa ne marche pas... j'ai essayé sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Range("G" & lastline + 7).Select
            ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
            "C:\Documents and Settings\avaysse\Mes documents\" & XlsFiles(i), ReadOnly:=True
            Selection.Hyperlinks(1).TextToDisplay = "consulter"
            Selection.Hyperlinks(1).ScreenTip = XlsFiles(i)
    mais sa ne marche pas quelqun sait peu-etre pourquoi..??

    merci

  16. #16
    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
    Pour ce qui me concerne, j'ai le message "Propriété ou méthode non gérée par cet objet"
    J'en déduis que tu n'as pas la même version que moi (VBA97)
    Sinon, le message est explicite...

    Tu regardes dans les propriété d'Hyperlinks (?)

    A tout hasard

    Edit
    Si ça peut te servir, le code qui m'a servi pur tester ton code
    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
    25
    26
    27
    Sub HyperLien()
    Dim XlsFiles(1)
    Application.DisplayAlerts = False
    XlsFiles(1) = "Bilan Gestion des absences.xls"
        Range("G" & lastline + 7).Select
        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
        "D:\xls\" & XlsFiles(1) ', ReadOnly:=True   'Pas d'erreur avec cette syntaxe
        With ActiveSheet
            For i = 0 To .Hyperlinks.Count
                If .Hyperlinks(1).Name <> "" Then
                    NomLien = .Name
                    Exit For
                End If
            Next
            On Error Resume Next
            .ActiveCell.Hyperlinks(i).TextToDisplay = "consulter"  'ERREUR 1
            If Err <> 0 Then
                MsgBox "Nom du lien " & NomLien & "  " & Error(Err)
            End If
            Err.Clear
            .ActiveCell.Hyperlinks(i).ScreenTip = XlsFiles(1)     'Erreur 2
            If Err <> 0 Then
                MsgBox "Nom du lien " & NomLien & "  " & Error(Err)
            End If
            Err.Clear
        End With
    End Sub
    Si ça peut t'être utile...

  17. #17
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Points : 196
    Points
    196
    Par défaut
    salut ouskel'n'or

    non je n'est pas la meme version que toi je compte bien essayé ton code
    en esperans qu'il marche mieu que le mien

    merci pour ton aide je ferai un edit de se message pour donné un avi

  18. #18
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Points : 196
    Points
    196
    Par défaut
    salut ouskel'n'or

    je vien de regardé ton code tu m'etone que sa marche il y a un apostrophe juste avant le readonly.........

  19. #19
    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
    Je l'utilise sans le readonly, mais je comptais sur toi pour modifier la ligne...

    A+

  20. #20
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Points : 196
    Points
    196
    Par défaut
    mais lol

    mais le probleme il est bien la.. c'est que quand je le met.. bin sa plante..

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. [XL-2003] VBA Excel/Access: lecture seule après macro
    Par lahila dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 30/09/2011, 12h44
  4. Ouvrir un fichier Excel en lecture seule
    Par Elvis32 dans le forum VBA Word
    Réponses: 8
    Dernier message: 17/09/2008, 10h23
  5. [vba excel & access] ouvrir feuille excel avec access
    Par ash_rmy dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/09/2006, 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