Supporter le site en le visitant ou cliquez ci-desous pour désactiver les calculs :


Merci de désactiver votre bloqueur de pub si vous souhaitez supporter le site, aucune publicité ne sera affichée


Pour afficher cacher un texte mis en forme sous Word. Il faut passer par une petite programmation en vba.
Une série de cases à cocher ( une par section à cacher) est à créer, nommer.
Puis à vous d’adapter le script suivant:

'SCRIPT VBA POUR AFFICHER CACHER UN TEXTE PAR MODIFICATION DE SIGNET OU PAR TEXTE MASQUÉ
 'Préparation de Word
 'Affichage du ruban développeur
 'Fichier=>Options=>Personnaliser le Ruban>cocher développeur(design)
 'Préparation du document
 'On insère dans les documents des case-à-cocher (ActiveX)(onglet developpeur>contrôles>mode création, contrôles>outils hérités>contrôles ActiveX>case-à-cocher)
 'On insère des signets (marques-pages/bookmark) aux endroits a modifier (un signet titre et un second texte).
 'On créer les styles à appliquer (styles pour titres et styles pour textes)
 'On appuie sur Alt+F11 pour l’éditeur VBE/VBA
 'On selectionne Project(nom_du_document), puis Microsoft Word Objets =>ThisDocument
 '
 'Définitions
 'On déclare les fonctions (SUB) en PRIVATE pour qu’elles ne soient disponibles que pour ce document, et qu'elles n'interfèrent pas les uns avec les autres.
 'Dim permet la déclaration de la variable, AS son Format
 'On assigne les valeurs aux variables:
 '"texte" est une chaîne de caractères
 'Chr(10) indique un retour à la ligne
 'Chr(169) indique un CopyRight ©
 'Chr(167) indique un Alinea/Paragraphe §
 'Chr(174) indique un Registered/ Ressort ®
 'Chr(153) indique un TradeMark ™
 '& indique une concaténation de chaîne
 'vbNullString efface le contenu de la variable
 '
 'On commence les conditions avec IF et on termine la condition avec End IF
 'ELSE une condition « si faux »
 'Call appelle une autre fonction SUB
 'With permet d’appliquer plusieurs modifications à un objet et se termine par End With
 '
 '
 'Script
 'case-à-cocher 1
 Private Sub CheckBox1_Click()
 Dim StrTxt As String, StrBkMk As String
 Dim Stxt As String, StBk As String
 StrBkMk = "Bookmark1"
 StBk = "bookmarka"
 If Me.CheckBox1.Value = True Then
 StrTxt = "Titre signet 1"
 Stxt = Chr(10) & "Texte signet 1" & Chr(10)
 Else
 StrTxt = vbNullString
 Stxt = vbNullString
 End If
 Call UpdateBookmark(StrBkMk, StrTxt)
 Call UpdateBookmark2(StBk, Stxt)
 Call ListBookmark("Bookmark1")
 Call StyleBookmark("bookmarka")
 End Sub
 'case-à-cocher 2
 Private Sub CheckBox2_Click()
 Dim StrTxt As String, StrBkMk As String
 Dim Stxt As String, StBk As String
 StrBkMk = "Bookmark2"
 StBk = "bookmarkb"
 If Me.CheckBox2.Value = True Then
 StrTxt = "Titre signet 2"
 Stxt = Chr(10) & "Texte signet 2" & Chr(10)
 Else
 StrTxt = vbNullString
 Stxt = vbNullString
 End If
 Call UpdateBookmark(StrBkMk, StrTxt)
 Call UpdateBookmark2(StBk, Stxt)
 Call ListBookmark("Bookmark2")
 Call StyleBookmark("bookmarkb")
 End Sub
 'case-à-cocher 3
 Private Sub CheckBox3_Click()
 Dim StrTxt As String, StrBkMk As String
 Dim Stxt As String, StBk As String
 StrBkMk = "Bookmark3"
 StBk = "bookmarkc"
 If Me.CheckBox3.Value = True Then
 StrTxt = " Titre signet 3 "
 Stxt = Chr(10) & "Texte signet 3." & Chr(10)
 Else
 StrTxt = vbNullString
 Stxt = vbNullString
 End If
 Call UpdateBookmark(StrBkMk, StrTxt)
 Call UpdateBookmark2(StBk, Stxt)
 Call ListBookmark("Bookmark3")
 Call StyleBookmark("bookmarkc")
 End Sub
 'case-à-cocher 4
 Private Sub CheckBox4_Click()
 Dim StrTxt As String, StrBkMk As String
 Dim Stxt As String, StBk As String
 StrBkMk = "Bookmark4"
 StBk = "bookmarkd"
 If Me.CheckBox4.Value = True Then
 StrTxt = " Titre signet 4»
 Stxt = Chr(10) & "Texte signet 4." & Chr(10)
 Else
 StrTxt = vbNullString
 Stxt = vbNullString
 End If
 Call UpdateBookmark(StrBkMk, StrTxt)
 Call UpdateBookmark2(StBk, Stxt)
 Call ListBookmark("Bookmark4")
 Call StyleBookmark("bookmarkd")
 End Sub
 'case-à-cocher 5
 'cache affiche grâce à "texte masqué" de la police de caractères (texte ou page blanche)
 Private Sub CheckBox5_Click()
 Bookmarks("Bookmark5").Range.Font.Hidden = Not CheckBox5.Value
 '// If the logic is wrong, change to
 '// = Not Checkbox5.Value
 End Sub

'mise-a-jour du signet de titre
 Sub UpdateBookmark(StrBkMk As String, StrTxt As String)
 Dim bProtected As Boolean
 Dim BkMkRng As Range
 Dim sPassword As String
 sPassword = "" 'password pour protection du doc
 'deprotection du doc
 If ActiveDocument.ProtectionType <> wdNoProtection Then
 bProtected = True
 ActiveDocument.Unprotect Password:=sPassword
 End If
 With ActiveDocument
 If .Bookmarks.Exists(StrBkMk) Then
 Set BkMkRng = .Bookmarks(StrBkMk).Range
 BkMkRng.Text = StrTxt
 .Bookmarks.Add StrBkMk, BkMkRng
 End If
 End With
 'reprotection du doc
 Finished:
 If bProtected = True Then
 ActiveDocument.Protect _
 Type:=wdAllowOnlyFormFields, NoReset:=True, Password:=sPassword
 End If
 Set BkMkRng = Nothing
 End Sub

'mise-a-jour du signet de texte
 Sub UpdateBookmark2(StBk As String, Stxt As String)
 Dim bProtected As Boolean
 Dim BkMkRng2 As Range
 Dim sPassword As String
 sPassword = "mot de passe" 'password pour protection du doc
 'deprotection du doc
 If ActiveDocument.ProtectionType <> wdNoProtection Then
 bProtected = True
 ActiveDocument.Unprotect Password:=sPassword
 End If
 With ActiveDocument
 If .Bookmarks.Exists(StBk) Then
 Set BkMkRng2 = .Bookmarks(StBk).Range
 BkMkRng2.Text = Stxt
 .Bookmarks.Add StBk, BkMkRng2
 End If
 End With
 'reprotection du doc
 Finished:
 If bProtected = True Then
 ActiveDocument.Protect _
 Type:=wdAllowOnlyFormFields, NoReset:=True, Password:=sPassword
 End If
 Set BkMkRng = Nothing
 End Sub

'application du style de titre
 Sub ListBookmark(StrBkMk As String)
 Dim BkLstRange As Range
 Dim bProtected As Boolean
 Dim sPassword As String
 sPassword = "mot de passe" 'password pour protection du doc
 'deprotection du doc
 If ActiveDocument.ProtectionType <> wdNoProtection Then
 bProtected = True
 ActiveDocument.Unprotect Password:=sPassword
 End If
 If Me.CheckBox1.Value = True Then
 With ActiveDocument
 If .Bookmarks.Exists(StrBkMk) Then
 Set BkLstRange = .Bookmarks(StrBkMk).Range
 BkLstRange.Style = "Puce_1"
 End If
 End With
 Else
 With ActiveDocument
 If .Bookmarks.Exists(StrBkMk) Then
 Set BkLstRange = .Bookmarks(StrBkMk).Range
 BkLstRange.Style = "Normal"
 End If
 End With
 End If
 'reprotection du doc
 Finished:
 If bProtected = True Then
 ActiveDocument.Protect _
 Type:=wdAllowOnlyFormFields, NoReset:=True, Password:=sPassword
 End If
 End Sub

'application du style de texte
 Sub StyleBookmark(StBk As String)
 Dim BkLstRange2 As Range
 Dim bProtected As Boolean
 Dim sPassword As String
 sPassword = "mot de passe" 'password pour protection du doc
 'deprotection du doc
 If ActiveDocument.ProtectionType <> wdNoProtection Then
 bProtected = True
 ActiveDocument.Unprotect Password:=sPassword
 End If
 With ActiveDocument
 If .Bookmarks.Exists(StBk) Then
 Set BkLstRange = .Bookmarks(StBk).Range
 BkLstRange.Style = "article"
 End If
 End With
 'reprotection du doc
 Finished:
 If bProtected = True Then
 ActiveDocument.Protect _
 Type:=wdAllowOnlyFormFields, NoReset:=True, Password:=sPassword
 End If
 End Sub