Macro pour protéger formulaire + macro pour protéger champ de formulaire

jozerebel

XLDnaute Occasionnel
Bonjour à tous,

J'ai rédigé un formulaire avec des macros pour faciliter la saisie et calculer des champs en automatique.

Seulement, j'ai deux questions:

1- Le document doit obligatoirement être déprotégé au départ, puisqu'il va chercher des mots clés sur un logiciel métier (mots clé qui ne se mettent pas à jour si le docuement est initialement en mode formulaire). Ensuite l'utilisateur, pour accéder aux fonctionnalités du formulaire doit faire : Outil/protection/protéger le document/autoriser formulaire. Comment faire en sorte que cette manipulation soit automatique et ne demande pas la manipulation de l'utilsateur (qui est un utilisateur très limité en connaissances bureautiques)?

2- Certains champs de formulaire sont calculés automatiquement. Comment faire en sorte que l'utilisateur ne puisse pas les modifier ?

A toutes fins utiles, je mets un bout de ma macro ci-dessous:


Sub heuresetsalairemensuel()

Dim i As Integer


MsgBox ("Attention, le nombre d'heures hebdomadaire ne doit pas dépasser 35 heures.")
respect35h:
heureshebdo = InputBox("Quel est le nombre d'heures hebdomadaire?")

'Controle d'erreur, respect des 35 heures
If heureshebdo > 35 Then
MsgBox ("Le nombre saisi dépasse 35. le nombre d'heures hebdomadaire ne doit pas dépasser 35 heures.")
GoTo respect35h
End If

'controle d'erreur : si il y a un "." à la place de "," --> transformer "." en ","
i = 1
While i <= Len(heureshebdo)
If Mid(heureshebdo, i, 1) = "." Then
heureshebdo = Mid(heureshebdo, 1, i - 1) & "," & Mid(heureshebdo, i + 1, Len(heureshebdo))
End If
i = i + 1
Wend
'fin ctrl erreur

heuresmens = heureshebdo * 4.333333
heuresmens = Format(heuresmens, "#0.00")

MsgBox ("le nombre d'heures mensuel est de " & heuresmens & "heures.")

ActiveDocument.FormFields("dureectt").Result = heuresmens


sal = ActiveDocument.FormFields("pts").Result * 5.302 / 151.67 * heuresmens
sal = Format(sal, "#0.00")


MsgBox ("La valeur du point est de 5,302 €. Le nombre d'heures mensuel est de " & heuresmens & " heures. Le nombre de points est de " & ActiveDocument.FormFields("pts").Result & " points, soit un salaire mensuel de base de " & sal & " : " & ActiveDocument.FormFields("pts").Result & " * 5,302 / 151,67 * " & ActiveDocument.FormFields("dureectt").Result & ".")

ActiveDocument.FormFields("salaire").Result = sal


End Sub

Merci pour votre aide!
 

jozerebel

XLDnaute Occasionnel
Re : Macro pour protéger formulaire + macro pour protéger champ de formulaire

A ttes fins utiles, je précise ma question 1:

est-il possible d'interdire la modification d'un champ de formulaire après calcul de ce dernier, et ce, par macro?

d'avance merci!
 

Discussions similaires

Réponses
7
Affichages
351

Statistiques des forums

Discussions
312 228
Messages
2 086 420
Membres
103 205
dernier inscrit
zch