Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/09/2006, 11h13   #1
Membre actif
 
Sandrine
Inscription : septembre 2006
Messages : 317
Détails du profil
Informations personnelles :
Nom : Sandrine
Âge : 31
Localisation : Belgique

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : septembre 2006
Messages : 317
Points : 170
Points : 170
Par défaut Word: désactiver le menu enregistrer sous

Bonjour,

est ce que quelqu'un connait le code VB qui permet d'ouvrir un fichier Word en bloquant le menu enregistrer sous?
Ou un lien qui me menerais vers une réponse.

Mon but est de l'adapter ensuite sous access pour pouvoir y ouvrir des documents Word en lecture seule (ca je sais faire) mais dont toutes copies est impossible.

merci pour toute l'aide que vous pourrez m'apporter.
p'tite Sandrine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2006, 11h54   #2
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Effectivement, tu peux faire ça "en dur" sur chaque poste de travail... Mais tu imagines le résultat ?
Ceci dit, ce n'est certainement pas la solution pour empêcher les copies
Je me contenterais de copier le fichier et d'aller le lire sur un autre poste de travail.
Ceci dit, j'ai vu passer quelque chose là-dessus mais pas sous Access, faudrait vérifier.
Je cherche
A tout'
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2006, 12h00   #3
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Voilà, j'ai trouvé. Comme je t'ai dit, ce n'est ni word ni access mais tu devrais plutôt chercher de ce côté-là

Citation:
Envoyé par Gerard6969
excelabo :

Citation:
L'exemple à télécharger ci dessous décrit une méthode qui permet d'ouvrir un
classeur dans une session privée d'Excel, c'est à dire qui oblige l'utilisateur à ouvrir préalablement une autre session d'Excel pour consulter un ou des classeurs différents. L'ouverture d'un classeur au travers de l'explorateur est automatiquement exécutée dans une session différente de le session
courante. Accessoirement, cette méthode empêche la copie des feuilles du
classeur
.



Je peut pas être plus claire pour expliquer mon histoire de session unique ou privée...
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2006, 09h22   #4
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 854
Points : 16 854
Envoyer un message via Skype™ à bbil
tiens un début de solution qui désactive les entrées Enregistrer et Enregistrer Sous .. de l'application word ouvrant le document...

Code :
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
28
 
 
Sub OuvreWord(stFichier As String)
Dim wrd As New Word.Application
Dim c As CommandBar
Dim cp 'As CommandBarPopup
Dim MonDoc As Word.Document
Set MonDoc = wrd.Documents.Open(Filename:=stFichier, ReadOnly:=True)
On Error Resume Next
wrd.Visible = True
 
For Each c In wrd.CommandBars
     For Each cp In c.Controls
      If c.Type = msoBarTypeMenuBar Or c.Type = msoBarTypePopup Then
         For Each cb In cp.Controls
           If InStr(1, cb.Caption, "registrer") Then cb.Enabled = False
         Next
       End If
         If InStr(1, cp.Caption, "registrer") Or InStr(1, cp.Caption, "Enre&gistrer") Then
                 cp.Enabled = False
            End If
     Next
Next
 
End Sub
Sub test()
OuvreWord ("c:\tmp\MonDoc.doc ")
End Sub
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2006, 11h05   #5
Membre actif
 
Sandrine
Inscription : septembre 2006
Messages : 317
Détails du profil
Informations personnelles :
Nom : Sandrine
Âge : 31
Localisation : Belgique

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : septembre 2006
Messages : 317
Points : 170
Points : 170
bonjour,

merci beaucoup pour vos réponses.

Maintenant je repart avec mon petit code et va falloir jouer au puzzle pour arranger ca avec mon code access.

encore un tout grand merci.
p'tite Sandrine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2006, 16h06   #6
Membre actif
 
Sandrine
Inscription : septembre 2006
Messages : 317
Détails du profil
Informations personnelles :
Nom : Sandrine
Âge : 31
Localisation : Belgique

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : septembre 2006
Messages : 317
Points : 170
Points : 170
re bonjour,

désolé de vous redéranger mais j'ai un petit problème pour adapter mon code et je me dis que c'est à cause d'un manque de compréhension du VBA.

j'ai bien compris que ce qui inhibe mon bouton "enregistrer sous" se situe dans cette partie du code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
For Each c In wrd.CommandBars
     For Each cp In c.Controls
      If c.Type = msoBarTypeMenuBar Or c.Type = msoBarTypePopup Then
         For Each cb In cp.Controls
           If InStr(1, cb.Caption, "registrer") Then cb.Enabled = False
         Next
       End If
         If InStr(1, cp.Caption, "registrer") Or InStr(1, cp.Caption, "Enre&gistrer") Then
                 cp.Enabled = False
            End If
     Next
Next
le problème c'est que j'ai du mal a en comprendre le sens.
Pourquoi doit-on utiliser une boucle For... Next?

En plus, en l'adaptant sur mon bouton de formulaire je n'obtient aucun changement, le menu enregistrer sous reste actif.

le but final est:
clic bouton dans formulaire Access provoque ouverture du document Word attaché à l'enregistrement.
Celui-ci s'ouvre en lecture seule.
J'aimerais en plus rendre innaccessible le menu "enregistrer sous" pour eviter toute copie de ce fichier.

avez vous une idée?
p'tite Sandrine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2006, 16h27   #7
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
For Each c In wrd.CommandBars 'pour parcourir toutes tes barres d'outils ou de menus
     For Each cp In c.Controls 'pour parcourir tous les contrôles de chaque barre de menus ou barre d'outils
      'la ligne suivante identifie le type Menu ou commande dans un menu
      If c.Type = msoBarTypeMenuBar Or c.Type = msoBarTypePopup Then
         'Et si c'est l'un ou l'autre
         For Each cb In cp.Controls ' permet de retrouver la commande "Enregistrer"
           '... et pour désactiver la commande, ligne suivante
           If InStr(1, cb.Caption, "registrer") Then cb.Enabled = False
         Next
       End If
       'Idem mais pr ts controls de toutes les barre d'outils (pour pas en oublier...)
       If InStr(1, cp.Caption, "registrer") Or InStr(1, cp.Caption, "Enre&gistrer") Then
             cp.Enabled = False ' désactive la commande
       End If
     Next
Next
Pour mieux comprendre, regarde dans l'aide à "Type, Propriété", tu as un véritable cours sur la question
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2006, 10h02   #8
Membre actif
 
Sandrine
Inscription : septembre 2006
Messages : 317
Détails du profil
Informations personnelles :
Nom : Sandrine
Âge : 31
Localisation : Belgique

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : septembre 2006
Messages : 317
Points : 170
Points : 170
merci je vais essayer de me débrouiller avec ça.
graçe a toi c'est déjà un peu moins nébuleux
p'tite Sandrine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2006, 10h07   #9
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Surtout grâce à bbil, je ne t'aurais jamais conseillé ça
Bonne chance !
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2006, 14h01   #10
Membre actif
 
Sandrine
Inscription : septembre 2006
Messages : 317
Détails du profil
Informations personnelles :
Nom : Sandrine
Âge : 31
Localisation : Belgique

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : septembre 2006
Messages : 317
Points : 170
Points : 170
hello,

j'ai adapter votre code dans access. (avec l'aide du forum acces, bien entendu,puisque je parle pas courament VBA)
C'est presque ca!
reste que le menu enregistrer reste présent et renvois vers enregistrer sous puisque le doc est en lecture seule

Du coup comme il peuvent rien modifier ne serait-il pas plus judicieux d'ouvrir Word en supprimant tout les menu sauf quittez sans sauvegarde?
Mais peut être que je vais trop loin!

sinon il me reste également comme problème
que quand je referme Word il me demande si je veux enregistrer les modification du fichier DOT. Y a t'il moyen de configurer non d'office et ne plus afficher les messages?

merci pour votre aide
p'tite Sandrine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2006, 14h20   #11
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Pour désactiver les messages, tu as Application.displayalerts = false mais dans le cas d'un dot, je ne pense pas que cela suffit. Pour que ça fonctionne, je pense qu'il faudrait pouvoir le fermer en faisant "Thisworkbook.close false" mais là encore, pour un .dot, je ne sais pas si c'est possible. Tu as enfin une option (Outils -> Options -> Enregistrement -> Confirmer l'enregistrement de Normal.dot) qui permet de valider l'enregistrement auto ou manuel de ce modèle. J'ignore là encore si pour un autre modèle l'option reste valable
Pas très constructive, mon histoire, mais c'est en attendant mieux
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2006, 15h29   #12
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Je viens de relire (!) et je me pose une question : Comment se nomme ton .dot ? Si c'est Normal.dot, tu as ta réponse (la dernière)
Mais ce que je me demande, c'est pourquoi la question de l'enregistrement t'est posée. Tu modifies une macro dans ton appli ?
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2006, 17h08   #13
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 854
Points : 16 854
Envoyer un message via Skype™ à bbil
au cas ou certaines constantes ne soit pas accessible , rajoute la ligne

en haut de ton code.. et déclare les variables qui ne le sont pas..
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2006, 10h20   #14
Membre actif
 
Sandrine
Inscription : septembre 2006
Messages : 317
Détails du profil
Informations personnelles :
Nom : Sandrine
Âge : 31
Localisation : Belgique

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : septembre 2006
Messages : 317
Points : 170
Points : 170
oulala ca se complique encore plus.

Par contre Ous'kel'nor me fais penser à quelque chose.
le .DOT c'est donc le fichier de gestion de la configuration de word?
si c'est le cas, je devrais pouvoir (avec un peu d'aide ) en créer un avec juste les menu quittez et imprimer qui resterais actif.

Et ensuite demander à access de m'ouvrir le fichier avec cette version de configuration? (ca m'éviterais les message pour enregistrer les modifs du model)

Est ce que je rêve ou est ce que ce serais possible et plus propre?
p'tite Sandrine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2006, 12h47   #15
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Oui, ce serait en effet une solution... me semble-t-il... Modifier les barres d'outils en dynamique m'a toujours paru risqué (envisager le plantage, les pannes... est une préoccupation... qui me préoccupe J'ai eu le pb une fois et ça m'a suffi) .
Ajouter une barre d'outils ou un menu que l'on supprime à la fermeture du fichier n'a pas les mêmes incidences. Après plantage éventuel, le fichier incriminé une fois ré-ouvert puis refermé, tout revient dans l'ordre.
Un modèle limité à une seule barre d'outil ne possédant que la commande "quitter" me semblerait la bonne solution. Mais pense que ce modèle devra être disponible pour chaque utilisateur : 100 postes = 100 modèles installés.
Ton .doc devra être développé selon ce modèle. Réserve-toi une macro te permettant de tout remettre en état afin de pouvoir travailler
Tu n'es pas obligé de placer cette macro sur ton modèle.
Pense que ton modèle devra être enregistré. Tu n'auras plus la commande "Enregistrer". Prépare une macro placée ailleurs pour le faire
Etc.
Commence déjà...
Bon courage
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2006, 14h30   #16
Membre actif
 
Sandrine
Inscription : septembre 2006
Messages : 317
Détails du profil
Informations personnelles :
Nom : Sandrine
Âge : 31
Localisation : Belgique

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : septembre 2006
Messages : 317
Points : 170
Points : 170
Merci pour vos conseils.

Grace à vous, J'ai donc créé un modèle DOT avec juste imprimer et quittez comme menu.
Maintenant va falloir que j'arrive à faire comprendre à access qu'il doit m'ouvrir Word avec ce modèle.

Mais bon ca je suppose que c'est plutot le forum access qui pourra m'y aider.

En tout les cas encore un grand merci je trouve ses forums super sympa.

p'tite Sandrine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2006, 15h11   #17
Membre actif
 
Sandrine
Inscription : septembre 2006
Messages : 317
Détails du profil
Informations personnelles :
Nom : Sandrine
Âge : 31
Localisation : Belgique

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : septembre 2006
Messages : 317
Points : 170
Points : 170
Bon ben j'ai du me planter quelque part car quand je modifie mon nouveau DOT ca modifie également le NORMAL donc c'est pas encore ça!!

zut zut zut
p'tite Sandrine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2006, 23h04   #18
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Tu dois ouvrir un nouveau doc, l'enregistrer sous .dot dans un autre répertoire. Vas dans "Options -> Onglet "Dossier par défaut" et indique le répertoire où se trouve ton .dot
Ferme Word, rouvre-le, ouvre ton nouveau .dot, modifie-le, enregistre-le.
Maintenant tu peux le replacer dans modèles.
Dans le.dot, regarde dans outils -> Modèles et complément -> Attache tes fichiers à ton nouveau .dot.
Rétablis le Dossier par défaut "C:\Program Files\Microsoft Office\Modèles"
Ferme Word, rouvre-le. Ouvre un "Nouveau fichier" au Modèle àToi, tu peux maintenant mettre tes affaires dedans, on devrait ne pouvoir que les lire... sauf si le gugus sait comment accéder à l'affichage par touches de fonctions

Tu ne dois jamais travailler sur un .doc. C'est ce que tu as dû faire
Sur Normal.dot, prépare la macro qui restitue tout, c'est un conseil
Bonne chance

NB - Un autre conseil : Crée une barre d'outils avec tes options plutôt que de supprimer les menus et outils des barres "standard"
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2006, 10h16   #19
Membre actif
 
Sandrine
Inscription : septembre 2006
Messages : 317
Détails du profil
Informations personnelles :
Nom : Sandrine
Âge : 31
Localisation : Belgique

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : septembre 2006
Messages : 317
Points : 170
Points : 170
hello,

aïe :

Citation:
Dans le.dot, regarde dans outils -> Modèles et complément -> Attache tes fichiers à ton nouveau .dot.
Rétablis le Dossier par défaut "C:\Program Files\Microsoft Office\Modèles"
je ne sais pas les attacher préalablement puisque les dossiers n'ont pas encore été créer et je crois que ca risque d'être complexe de demander au utilisateur de les y attacher eux-même.

En fait je pense que je vais leur téléphonner pour voir si je peux simplifier un peu le schmilblik car en deux semaine je me suis "arracher la moitié de mes cheveux".
j'avoue que j'adore les défis mais j'ai horreur d'avoir l'impression de faire du sur place.
Ou alors, je vais réflechir a une autre possibilité (mon chef propose d'ouvrir le doc en html avec l'exploreur, je vais tenter d'explorer cette piste)
j'ai aucune idée de comment faire ou si c'est possible mais bon on va faire des recherche et qui sait...

un tout grand merci pour ton aide et ta patience.
désolé de t'avoir pris tout ce temps pour rien.
p'tite Sandrine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2006, 10h41   #20
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Ok, écoute ton chef mais là je ne peux pas t'aider
Citation:
Envoyé par Tu
je ne sais pas les attacher préalablement puisque les dossiers n'ont pas encore été créer et je crois que ca risque d'être complexe de demander au utilisateur de les y attacher eux-même.
Je pensais à une solution soft, pas manuelle
Bonne chance
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h36.


 
 
 
 
Partenaires

Hébergement Web