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 :

Comment imposer l'accès à un modèle en lecture seule ?


Sujet :

VBA Word

  1. #1
    Membre actif
    Avatar de Golard
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 281
    Points : 289
    Points
    289
    Par défaut Comment imposer l'accès à un modèle en lecture seule ?
    Bonjour, j'ai un grave problème !

    Je manipule plusieurs fichiers .docx attachés à un modèle personnalisé MonModele.dotx

    Ces fichiers sont sur un réseau et plusieurs personnes peuvent manipuler plusieurs fichiers .docx en même temps.

    Il arrive fréquemment qu'à l'ouverture d'un fichier docx, on ait le message "le modèle MonModele.dotx a été ouvert en modification par...", ou encore lors de l'enregistrement du fichier docx, le message "voulez-vous enregistrer également les modifications dans le modèle MonModele.dotx.

    Je rencontre le même problème en modifiant les fichiers docx avec mes macros...

    Comment empêcher que Word cherche à modifier le modèle alors qu'on ne lui demande pas ???

    J'espère trouver un sauveur parmi vous !

    Golard.

    Développement VBNet sous Visual Studio Community 2013 (environnement Windows 10)

  2. #2
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour,

    Il suffit de mettre le modèle en lecture seule.
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  3. #3
    Membre actif
    Avatar de Golard
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 281
    Points : 289
    Points
    289
    Par défaut
    Comment faire cela proprement en VBA-Word 2007 ?

    Voici comment j'enregistre actuellement mon modèle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        myModele.SaveAs FileName:=strModelesPath & strModele & ".dotx", FileFormat:= _
            Word.wdFormatXMLTemplate, LockComments:=False, Password:="", AddToRecentFiles _
            :=False, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
            :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
            SaveAsAOCELetter:=False
    Rien ne me permet d'indiquer qu'il sera en lecture seule. Faut-il faire précéder l'enregistrement par :

    ?

    [EDIT:] Je viens de tester, il n'est pas possible d'utiliser la propriété .Final dans une macro car ça affiche automatiquement un message qui annonce l'enregistrement, puis la boite de dialogue d'enregistrement ! Donc quelle est la solution pour passer le modèle en lecture seule via VBA (j'aimerais éviter d'alourdir mon code avec FSO, car j'ai réussi à m'en passer jusqu'à présent) ?

    MERCI d'avance !!!

    Développement VBNet sous Visual Studio Community 2013 (environnement Windows 10)

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Et avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ReadOnlyRecommended:=true
    Cela donne quoi ?
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  5. #5
    Membre actif
    Avatar de Golard
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 281
    Points : 289
    Points
    289
    Par défaut
    Voici l'aide msdn pour ReadOnlyRecommended (word 2007):
    Document.ReadOnlyRecommended Property
    Office 2007
    True if Microsoft Office Word displays a message box whenever a user opens the document, suggesting that it be opened as read-only. Read/write Boolean.
    L'affichage d'une fenêtre proposant à l'utilisateur d'ouvrir en lecture seule est justement ce que je ne veux pas...

    Développement VBNet sous Visual Studio Community 2013 (environnement Windows 10)

  6. #6
    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 pense que ce qui se produit est l'effet d'une modification avec le choix par défaut de la mise en forme de ton document.

    Une solution est de passer en lecture seule le répertoire qui contient les fichiers pour les utilisateurs qui sont de simples utilisateurs.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  7. #7
    Membre actif
    Avatar de Golard
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 281
    Points : 289
    Points
    289
    Par défaut
    Bonjour et merci de ton idée,

    J'ai passé le dossier en lecture seule via:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Call FileSystem.SetAttr(strModelesPath, vbReadOnly)
    ça semble fonctionner avec des postes sous XP...

    Par sécurité, je passe également le fichier modèle en lecture seule.
    Mon code VBA le déverrouille puis le repasse en lecture seule quand il a besoin de le modifier.

    J'avais aussi pensé à la piste des emplacements approuvés... mais l'emplacement réseau que j'utilise n'est pas "approuvable" par word !
    Voici donc 2 questions subsidiaires:
    --> penses-tu que le fait que mon dossier de modèles ne soit pas "approuvé" puisse intervenir dans les difficultés que je rencontre ?
    --> est-il possible d'approuver un dossier via code vba ?

    Merci d'avance...

    Développement VBNet sous Visual Studio Community 2013 (environnement Windows 10)

  8. #8
    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 vois pas pourquoi ce dossier n'est pas approuvable ?
    Si c'est parce que c'est un dossier réseau, on peut spécifier que les dossiers réseau sont approuvables aussi.

    Pourquoi fais-tu toutes ces manipulations en VBA ?
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  9. #9
    Membre actif
    Avatar de Golard
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 281
    Points : 289
    Points
    289
    Par défaut
    Citation Envoyé par Heureux-oli Voir le message
    Je ne vois pas pourquoi ce dossier n'est pas approuvable ?
    Si c'est parce que c'est un dossier réseau, on peut spécifier que les dossiers réseau sont approuvables aussi.
    Exact ! Merci de l'info, il fallait juste commencer par cocher une case à cocher autorisant les chemins réseau avant d'essayer d'ajouter un nouvel emplacement.

    Citation Envoyé par Heureux-oli Voir le message
    Pourquoi fais-tu toutes ces manipulations en VBA ?
    Idéalement, mon application doit pouvoir être donnée à l'utilisateur "clef en main", sans que celui-ci ait des paramétrages manuels à faire sur son environnement informatique.

    Finalement, crois-tu que le fait d'approuver un emplacement puisse améliorer le pb de verrouillage des modèles ?
    Et sais-tu approuver un emplacement via VBA (ce type d'action n'étant pas enregistré par l'enregistreur de macro) ?

    Développement VBNet sous Visual Studio Community 2013 (environnement Windows 10)

Discussions similaires

  1. COMMENT accès en lecture seul aux logs sqlserver 2008
    Par Rafter dans le forum Administration
    Réponses: 4
    Dernier message: 15/07/2013, 23h58
  2. [PPT-2010] Comment définir le chemin d'accès aux modèles de groupe ?
    Par davidroman dans le forum Powerpoint
    Réponses: 0
    Dernier message: 07/05/2012, 10h38
  3. Comment savoir si un MSHFlexGrid est en lecture seule ?
    Par LouisXVI dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 07/10/2007, 09h40
  4. Réponses: 2
    Dernier message: 16/05/2006, 14h17

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