Prog avec VBA sous Word 2007

Signaler
Messages postés
2
Date d'inscription
lundi 28 juillet 2008
Statut
Membre
Dernière intervention
28 juillet 2008
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
Slt,
l'énoncé du pb peut paraitre assez long mais c'est pour bien expliquer la situation...
Je suis en stage et on m'a demandé de créer un document sous Word2007 avec des controles ActiveX. J'ai des cases à cocher, des listes déroulantes et des zones d'édition. Au départ pour gagner de la place sur mon doc et comme je n'ai pas trouvé de fonction pour cacher plusieurs lignes..., j'ai voulu développer des lignes à partir d'une case à cocher (activeX). Je les ai réduite au minimum puis quand je coche la case, elles se développent en augmentant de hauteur. Cependant ma fonction ne marchait pas car je sélectionnais des lignes protégées en écriture (j'avais verrouillé le doc en mode formulaire). J'ai donc inséré une ligne de code pour déverrouiller mon doc au début puis pour le réverrouiller à la fin. Le pb c'est que quand j'interviens sur une première case, elle se développe, je rentre des données dans ma zone d'édition, tout va bien... le pb c'est que si par exemple je coche la case à suivre, elle se développe mais remet à zéro le contenu des lignes précédentes... Je pense que le pb vient de la protection du doc mais je sais pas comment le résoudre...

extrait de mon code
Private Sub Afficher()
Selection.MoveDown Unit:=wdLine, Count:=1
    Selection.SelectRow
    Selection.Rows.HeightRule = wdRowHeightAtLeast
    Selection.Rows.Height = CentimetersToPoints(0.7)
    Selection.MoveDown Unit:=wdLine, Count:=1
    Selection.SelectRow
    Selection.Rows.HeightRule = wdRowHeightAtLeast
    Selection.Rows.Height = CentimetersToPoints(0.7)
End Sub
Private Sub Masquer()
Selection.MoveDown Unit:=wdLine, Count:=1
    Selection.SelectRow
    Selection.Rows.HeightRule = wdRowHeightExactly
    Selection.Rows.Height = CentimetersToPoints(0.05)
    Selection.MoveDown Unit:=wdLine, Count:=1
    Selection.SelectRow
    Selection.Rows.HeightRule = wdRowHeightExactly
    Selection.Rows.Height = CentimetersToPoints(0.05)
End Sub
Private Sub CheckBox11_Click()


If ActiveDocument.ProtectionType <> wdNoProtection Then
ActiveDocument.Unprotect ' "motdepas" si tu as mis un mot de passe
End If
If CheckBox11 = True Then
   Afficher
Else
    Masquer
End If
' en fin de code pour réactiver la protection
If ActiveDocument.ProtectionType = wdNoProtection Then
ActiveDocument.Protect wdAllowOnlyFormFields ' , , "mot de passe"
End If
End Sub

MERCI D'AVANCE

2 réponses

Messages postés
228
Date d'inscription
mercredi 13 décembre 2000
Statut
Membre
Dernière intervention
8 août 2011

Salut,

Tu décris un problème pour Word en VBA

Et tu as posté ici :

<li> Vous êtes ici : [infomsg.aspx Thèmes] / [infomsgf_VISUAL-BASIC_1.aspx Visual Basic 6]
/ [infomsgt_DIVERS_220.aspx Divers] / [infomsgt_DEBUTANTS_226.aspx Débutants] / prog avec VBA sous Word 2007
</li>
Dans la section Visual Basic 6.

Il y a une section toute faite pour le VBA.

La prochaine fois, essaie de poster dans la bonne section ;)

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)

Je brise la règle 1 et 2. Je
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
et en plus la question en double.....

bref, topic déplacé vers VBA