Bienvenue,
Comment pouvons-nous vous aider?

Word-Macrocodes

Info

Cette fonctionnalité est uniquement disponible dans le plan illimité.

 

Exemple 1: Code pour la création automatiquement de notes de bas de page

1. Comment fonctionne la macro :

Dans Lawlift, les notes de bas de page ne peuvent actuellement être mises en œuvre que dans une certaine mesure. Avec cette macro, vous pouvez automatiquement convertir les notes de bas de page présentes dans le texte continu aux passages de texte pertinents en notes de bas de page dans le texte des notes de bas de page. Les numéros de note de bas de page sont attribués automatiquement et font référence aux passages de texte correspondants. Ils sont liés dans Word par un clic sur la note de bas de page correspondante, ce qui permet à l'utilisateur de naviguer de l'avant vers l'arrière.
Le début d'une note de bas de page est indiqué par le caractère "{FN:", la fin de la note de bas de page par le caractère "}". Les deux doivent être utilisés dans le texte courant sans guillemets.

 

Exemple:

Lorum voluptua.{FN:ICC-01/09-02/11; emphasis} At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.{FN:ICC-01/09-02/11; emphasis} 

ΩConseil: Il ne devrait pas y avoir d'espace entre la note de bas de page et le mot ou la phrase référencée, sinon cet espace restera avec le numéro de note de bas de page ultérieur et la phrase ou le mot référencé.

A la fin, la macro demande l'emplacement du nouveau fichier Word.

2. Modèles de format utilisés

Les styles standards de Word sont utilisés. Pour des modifications divergentes de la présentation de la note de bas de page elle-même, il s'agit du modèle de format "Texte de note de bas de page". Pour un ajustement individuel du numéro de note de bas de page, le modèle de format «Caractères de note de bas de page» dans l'en-tête doit être adapté.

3. Exemple de code

Il existe de nombreuses façons différentes de programmer une telle macro. N'hésitez pas à contacter notre support. Voici un exemple de macro: 

Sub AutoOpen() 
    Dim OpenStrg As String 
    Dim CloseStrg As String 
    Dim myRange As Range 
    Dim StartPos As Long 
    Dim EndPos As Long 
    OpenStrg = "{FN:" 
    CloseStrg = "}" 
    StartPos = InStr(1, ActiveDocument.Range.Text, OpenStrg, vbTextCompare) - 1 
    Do Until StartPos = -1 
    	Set myRange = ActiveDocument.Range 
    	EndPos = InStr(StartPos, ActiveDocument.Range.Text, CloseStrg, vbTextCompare)
    	myRange.SetRange Start:=StartPos, End:=EndPos 
    	ActiveDocument.Footnotes.Add Range:=myRange, Text:=Mid(myRange.Text, Len(OpenStrg) + 1 Len(myRange.Text) - Len(CloseStrg) - Len(OpenStrg)) 
    	myRange.Text = "" 
    	StartPos = InStr(StartPos, ActiveDocument.Range.Text, OpenStrg,vbTextCompare) - 1 
    Loop 
    	
    End Sub

Remarque: Il existe des limitations dans la fonctionnement de la macro si le document contient des champs de fonction (par exemple, des tables des matières) ou des liens URL cliquables (":: url"). Une alternative à cela est présentée ci-dessous.

4. Exemple de code pour les documents contenant des champs de fonction et/ou des liens URL cliquables

Si votre document doit contenir des champs fonctionnels comme une table des matières ou des liens cliquables (":: url") en plus des notes de bas de page, il est nécessaire d'utiliser une macro adaptée. Dans ce qui suit, nous vous fournissons un exemple de code:
Sub AutoOpen()
        Dim OpenStrg As String
        Dim CloseStrg As String
        Dim myRange As Range
        Dim myPara As Paragraph
        Dim StartPos As Long
        Dim EndPos As Long
        OpenStrg = "{FN:"
        CloseStrg = "}"
        For Each myPara In ActiveDocument.Paragraphs
        StartPos = InStr(1, myPara.Range.Text, OpenStrg, vbTextCompare) - 1
        Do Until StartPos = -1
        Set myRange = myPara.Range
        EndPos = InStr(StartPos, myPara.Range, CloseStrg, vbTextCompare)
        myRange.SetRange Start:=myRange.Start + StartPos, End:=myRange.Start + EndPos
        ActiveDocument.Footnotes.Add Range:=myRange, Text:=Mid(myRange.Text, Len(OpenStrg) + 1, Len(myRange.Text) - Len(CloseStrg) - Len(OpenStrg))
        myRange.Text = ""
        StartPos = InStr(StartPos, myPara.Range, OpenStrg, vbTextCompare) - 1
        Loop
        Next
        End Sub

Remarque: Étant donné que la macro recherche chaque paragraphe individuellement et trouve et crée des notes de bas de page, il est important qu'il n'y ait toujours que des notes de bas de page OU des champs de fonction ou des hyperliens (":: url") dans un paragraphe. Si ce n'est pas le cas, des problèmes d'affichage peuvent survenir. De plus, il est essentiel de veiller à ce que la marque d'une note de bas de page "{FN: ...} soit toujours à l'intérieur d'un paragraphe et non à travers plusieurs paragraphes.

5. Code pour préparer les notes de bas de page pour l'importation

Si vous souhaitez importer un texte qui contient déjà des notes de bas de page et que vous souhaitez les afficher en tant que tels lors de l'exportation, vous pouvez également utiliser une macro à cet effet. La macro suivante convertit vos notes de bas de page au format décrit ci-dessus ("{FN: ...}"). De cette façon, vous pouvez préparer des textes volumineux avec des notes de bas de page de manière appropriée.

Sub Re_FN_UPdated_3()
        Dim FtNt As Footnote
        Dim FNTxt
        
        For Each FtNt In ActiveDocument.Footnotes
            With FtNt.Reference
            .Font.Superscript = False
                FNTxt = FtNt.Range.Text
                If Asc(Left(FNTxt, 1)) = "2" Or Asc(Left(FNTxt, 1)) = "9" Then
                    FNTxt = Right(FNTxt, Len(FNTxt) - 1)
                    If Asc(Left(FNTxt, 1)) = "9" Then
                        FNTxt = Right(FNTxt, Len(FNTxt) - 1)
                        .Text = "{FN:" & FNTxt & "}"
                
                    Else
                        .Text = "{FN:" & FNTxt & "}"
                    End If
                Else
                    .Text = "{FN:" & FtNt.Range.Text & "}"
                End If
                
            End With
        Next
    End Sub

Pour convertir à nouveau les expressions en notes de bas de page lors de l'exportation, vous pouvez réutiliser la première macro!


Exemple 2: Code pour la création automatique de cases à cocher, de champs de texte et de protection en écriture.

1. Comment fonctionne la macro:

Les cases à cocher et les champs de texte doivent être marqués avec un caractère dans LAWLIFT à l'endroit où ils doivent être insérés dans le texte.
Les champs marqués d'un {□} sont automatiquement convertis en champs de case à cocher « réels ». Les champs marqués de {...} doivent être automatiquement convertis en champs de texte "réels". Le fichier devient en lecture seule à l'exception des cases à cocher et des champs de texte. Ces derniers restent modifiables ou cliquables. À la fin, le fichier est converti d'un fichier .docm en un fichier .docx (sans macro).
 
Exemple :  
 
{□} Option 1 
{□} Option 2 
Nom de famille:{...} 
Adresse {...}
 
Attention: Lorsque la macro est exécutée, elle convertit automatiquement le fichier .docm en un fichier .docx et l'enregistre dans le même dossier où le fichier .docm a été enregistré.
Important: Le mot de passe pour la protection du document est actuellement "1234" et peut être modifié au début du code.
Remarque: Si vous souhaitez que la macro s'exécute automatiquement la première fois que vous l'ouvrez, remplacez le nom «CreateContentControls» par « AutoOpen ».

2. Exemple de code

Il existe de nombreuses façons différentes de programmer une telle macro. N'hésitez pas à contacter notre support. Voici un exemple de macro.
Astuce : Si vous souhaitez que la macro s'exécute automatiquement la première fois que vous ouvrez le fichier Word généré, veuillez remplacer le nom "CreateContentControls" dans la première ligne par "AutoOpen".
Sub CreateContentControls() 
    Dim CheckboxStrg As String 
    Dim TextboxStrg As String 
    Dim myRange As Range 
    Dim Testrange As Range 
    Dim StartPos As Long 
    Dim EndPos As Long 
    Dim Password As String 
    Dim Deletepath As String 
    Password = "1234" 
    CheckboxStrg = "{" & ChrW(&H25A1) & "}" 
    TextboxStrg = "{...}" 
    Offset = 0 
    StartPos = InStr(1, ActiveDocument.Range.Text, CheckboxStrg, vbTextCompare) - 1 
    Do Until StartPos = -1 
    Set myRange = ActiveDocument.Range 
    Set Testrange = ActiveDocument.Range 
    Testrange.SetRange Start:=1, End:=StartPos 
    Offset = Testrange.ContentControls.Count * 2 
    EndPos = StartPos + Len(CheckboxStrg) 
    myRange.SetRange Start:=StartPos + Offset, End:=EndPos + Offset 
    myRange.Select 
    myRange.Text = "" 
    myRange.ContentControls.Add (wdContentControlCheckBox) 
    StartPos = InStr(StartPos, ActiveDocument.Range.Text, CheckboxStrg, vbTextCompare) - 1 
    Loop 
    StartPos = InStr(1, ActiveDocument.Range.Text, TextboxStrg, vbTextCompare) - 1 
    Do Until StartPos = -1 
    Set myRange = ActiveDocument.Range 
    Set Testrange = ActiveDocument.Range 
    Testrange.SetRange Start:=1, End:=StartPos 
    Offset = Testrange.ContentControls.Count * 2 
    EndPos = StartPos + Len(TextboxStrg) 
    myRange.SetRange Start:=StartPos + Offset, End:=EndPos + Offset 
    myRange.Select 
    myRange.Text = "" 
    myRange.ContentControls.Add (wdContentControlText) 
    StartPos = InStr(StartPos, ActiveDocument.Range.Text, TextboxStrg, vbTextCompare) - 1 
    Loop 
    Application.ActiveDocument.Protect wdAllowOnlyFormFields, Password:=Password 
    Deletepath = ActiveDocument.FullName 
    ActiveDocument.SaveAs2 FileName:=Left(ActiveDocument.FullName, Len(ActiveDocument.FullName) - 5) & ".docx", FileFormat:=wdFormatDocumentDefault 
    Documents.Open (Left(ActiveDocument.FullName, Len(ActiveDocument.FullName) - 5) & ".docx") Kill (Deletepath) 
    End Sub
Vous pouvez télécharger un exemple de fichier ici. Attention, lors de l'exécution de la macro, le fichier .docm dans le même dossier se convertit automatiquement en fichier .docx. 

Remarque: Il existe des restrictions dans la fonctionnalité de la macro si le document contient des champs de fonction (par exemple, des tables des matières) ou des URL cliquables (":: url"). De plus, des difficultés peuvent survenir si les expressions mentionnées ci-dessus "{□}" ou "{...}" sont utilisées dans les tableaux. Une alternative à cela est présentée ci-dessous.

 

Exemple 3: Code pour les documents contenant des champs de fonction, des tableaux ou des URL cliquables.

Si votre document doit contenir d'autres champs de fonction en plus des notes de bas de page, tels qu'une  tables des matières ou des liens cliquables (":: url") ou si les expressions "{□}" ou "{...}" doivent être placées dans des tableaux, il est nécessaire d'utiliser une macro adaptée. Ci-dessous, nous vous fournissons un exemple de code adapté à cette situation :

Sub CreateContentControls()
     Dim CheckboxStrg As String
     Dim TextboxStrg As String
     Dim myRange As Range
     Dim Testrange As Range
     Dim myPara As Paragraph
     Dim StartPos As Long
     Dim EndPos As Long
     Dim Password As String
     Dim Deletepath As String
     Password = "1234"
     CheckboxStrg = "{" & ChrW(&H25A1) & "}"
     TextboxStrg = "{...}"
     Offset = 0
     For Each myPara In ActiveDocument.Paragraphs
     StartPos = InStr(1, myPara.Range.Text, CheckboxStrg, vbTextCompare) - 1
     Do Until StartPos = -1
     Set myRange = myPara.Range
     Set Testrange = myPara.Range
     Testrange.SetRange Start:=myRange.Start, End:=myRange.Start + StartPos + 1
     Offset = Testrange.ContentControls.Count * 2
     EndPos = StartPos + Len(CheckboxStrg)
     myRange.SetRange Start:=myRange.Start + StartPos + Offset, End:=myRange.Start + EndPos + Offset
     myRange.Select
     myRange.Text = ""
     myRange.ContentControls.Add (wdContentControlCheckBox)
     StartPos = InStr(StartPos + 1, myPara.Range.Text, CheckboxStrg, vbTextCompare) - 1
     Loop
     Next
     For Each myPara In ActiveDocument.Paragraphs
     StartPos = InStr(1, myPara.Range.Text, TextboxStrg, vbTextCompare) - 1
     Do Until StartPos = -1
     Set myRange = myPara.Range
     Set Testrange = myPara.Range
     Testrange.SetRange Start:=myRange.Start, End:=myRange.Start + StartPos + 1
     Offset = Testrange.ContentControls.Count * 2
     EndPos = StartPos + Len(TextboxStrg)
     myRange.SetRange Start:=myRange.Start + StartPos + Offset, End:=myRange.Start + EndPos + Offset
     myRange.Select
     myRange.Text = ""
     myRange.ContentControls.Add (wdContentControlText)
     StartPos = InStr(StartPos + 1, myPara.Range.Text, TextboxStrg, vbTextCompare) - 1
     Loop
     Next
     Application.ActiveDocument.Protect wdAllowOnlyFormFields, Password:=Password
     Deletepath = ActiveDocument.FullName
     ActiveDocument.SaveAs2 FileName:=Left(ActiveDocument.Name, Len(ActiveDocument.Name) - 5) & ".docx", FileFormat:=wdFormatDocumentDefault
     Documents.Open (Left(ActiveDocument.Name, Len(ActiveDocument.Name) - 5) & ".docx")
     Kill (Deletepath)
    End Sub

ATTENTION: Étant donné que la macro recherche chaque paragraphe individuellement pour les expressions, il est important qu'il n'y ait que des expressions OU des champs de fonction ou des hyperliens (":: url") dans un paragraphe. Si ce n'est pas le cas, des problèmes d'affichage peuvent survenir. De plus, veillez à ce que le marquage des cases à cocher et des champs de texte avec les expressions "{□}" ou "{...}" se fasse toujours à l'intérieur d'un paragraphe et non à travers plusieurs paragraphes.



Exemple 4: Code pour formater automatiquement les notes de bas de page

1. Comment fonctionne la macro:

L'objectif est d'implémenter automatiquement le formatage montré ci-dessous:

Le problème est que Word ne permet pas le contrôle automatique différencié des textes de note de bas de page et des caractères de note de bas de page via les styles. Seule la deuxième ligne peut être contrôlée via le retrait suspendu de la feuille de style du texte de la note de bas de page. Ainsi, il est nécessaire de définir une tabulation et la première ligne doit toujours être indentée manuellement pour chaque note de bas de page avec la touche de tabulation derrière le numéro de la note ou le caractère de note de bas de page.  
Cela peut être automatisé avec le fragment de code suivant. L'indentation est ensuite réglée à 1,5 dans les première et deuxième lignes.
Remarque: Étant donné que la macro automatise les étapes manuelles pour chaque note de bas de page, cela peut prendre du temps s'il y a de nombreuses notes de bas de page. Selon notre expérience, il faut environ 40 secondes pour environ 70 notes de bas de page. Malheureusement, cela ne peut pas être accéléré dans Word. Si vous souhaitez que la macro s'exécute automatiquement la première fois que vous l'ouvrez, veuillez remplacer le nom "FormateFootnotes" par "AutoOpen".
Attention: Lorsque la macro est exécutée, elle convertit le fichier .docm en un fichier .docx et l'enregistre à l'emplacement que vous spécifiez.

2. Exemple de code

Il existe de nombreuses façons différentes de programmer une telle macro. N'hésitez pas à contacter notre support. Voici un exemple de macro :

Sub FormateFootnotes() 
    For i = 1 To ActiveDocument.Footnotes.Count 
    ActiveDocument.Footnotes(i).Range.Select 
    With Selection 
    .Collapse Direction:=wdCollapseStart 
    .MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend 
    .TypeText Text:=vbTab 
    .ParagraphFormat.FirstLineIndent = CentimetersToPoints(-1.5) 
    End With 
    Next 
    Application.FileDialog(msoFileDialogSaveAs).Show 
    End Sub

Exemple 5: Code pour insérer des tabulations dans un paragraphe

1. Comment fonctionne la macro:

L'alignement du texte dans Lawlift est généralement réalisé via la mise en forme des paragraphes individuels. Afin d'effectuer une indentation des zones de texte à l'intérieur d'un paragraphe, vous pouvez utiliser la macro suivante. 

La façon d'insérer le code et de définir les taquets de tabulation est expliquée en détail ici.

2. Exemple de code:

Il existe de nombreuses façons de programmer une telle macro. Veuillez contacter notre support. Voici un exemple de macro:

Sub AutoOpen()
        '
        ' Tabstopp Makro
        '
        '
        Set myRange = ActiveDocument.Content
        myRange.Find.Execute FindText:="{Tab}"
        With Selection.Find
         .ClearFormatting
         .Text = "{Tab}"
         .Replacement.ClearFormatting
         .Replacement.Text = "^t"
         .Execute Replace:=wdReplaceAll, Forward:=True, _
        Wrap:=wdFindContinue
        End With
        End Sub

 

Exemple 6: Code pour marquer les espaces réservés vides

1. Comment fonctionne la macro:

Cette macro vous permet de mettre en surbrillance coloré les espaces réservés vides dans votre document Word. Après avoir inséré le code, les espaces réservés vides seront automatiquement surlignés en jaune lorsque le document Word est ouvert.

2. Exemple de code:

Il existe de nombreuses façons de programmer une telle macro. N'hésitez pas à contacter notre support. Voici un exemple de macro:

Sub AutoOpen()
        '
        ' Makro1 Makro
        '
        '
        Set myRange = ActiveDocument.Content
        myRange.Find.Execute FindText:="[...]"
        Options.DefaultHighlightColorIndex = wdYellow
         myRange.Find.ClearFormatting
         myRange.Find.Replacement.ClearFormatting
         With myRange.Find
         .Replacement.Highlight = True
         .Forward = True
         .Wrap = wdFindAsk
         .Format = True
         .MatchCase = False
         .MatchWholeWord = False
         .MatchWildcards = False
         .MatchSoundsLike = False
         .MatchAllWordForms = False
         End With
         myRange.Find.Execute Replace:=wdReplaceAll
        End Sub

 

Exemple 7: Préparation de liens formatés pour l'importation dans Lawlift

1. Comment fonctionne la macro:

Lawlift vous offre la possibilité de formater une URL insérée en tant que lien hypertexte avec un titre à l'aide de la fonction "titre (...)".Nous vous avons montré exactement comment cela fonctionne ici.

Cependant, si vous avez un document Word à automatiser qui contient déjà de tels liens formatés, vous ne pouvez pas simplement copier le texte dans LAWLIFT. Seuls les titres seraient copiés, mais pas les URLs.

Une macro peut vous aider ici, en convertissant tous les liens formatés dans le document Word en la forme "::url[www.exampleurl.de title(example)]" lisible par LAWLIFT. Ensuite, les liens formatés peuvent simplement être copiés du fichier Word dans le modèle LAWLIFT. Lawlift reconnaît les expressions et les insère en tant que liens cliquables avec le titre donné, comme indiqué dans notre aide.

Les liens non formatés peuvent également être simplement copiés dans le modèle LAWLIFT sans utiliser cette macro, et LAWLIFT les reconnaîtra en tant que tels.

2. Exemple de code:

Il existe de nombreuses façons de programmer une macro. N'hésitez pas à contacter notre support.

Voici un exemple de macro qui prépare le fichier source à importer dans Lawlift:

Sub Format_Hyperlinks()
         Dim Link As Hyperlink
         Dim HTP1, HTP2 As Integer
        HTP1 = 0
        HTP2 = 0
         'checking document if it contain URLs
         If ActiveDocument.Hyperlinks.Count > 0 Then
         For Each Link In ActiveDocument.Hyperlinks '------------------------
         If Link.Address <> "" Then
         'links vs bookmarks
         If InStr(Link.Address, "http") > 0 Then '------------
         Link.Range.Select
         'checking for address only links
         If Link.TextToDisplay = Link.Address Then
         Selection.TypeText "::url[" & Link.Address & "]"
         HTP1 = HTP1 + 1
         Else 'if link have a text to display
         Selection.TypeText "::url[" & Link.Address & " Title(" & Link.TextToDisplay & ")]"
         HTP2 = HTP2 + 1
         End If
         End If '------------
         End If
         Next Link '------------------------
         'statistic message
         mSg = "There are " & HTP1 & " link(s) without Title." & Chr(13) & "There are " & HTP2 & " link(s) with Title." & Chr(13) & "Total " & HTP1 + HTP2 & " link(s) formatted so far."
         MsgBox mSg, vbOKOnly + vbInformation, "Statistics"
         Else
         'if not links were found in document
         MsgBox "There are no hyperlinks in this document."
         End If
        End Sub
        Sub Format_Hyperlinks_Updated()
        '------------------------------------------------'
        '--------- Dealing Hyperlinks in Body -----------'
        '------------------------------------------------'
         Dim Link As Hyperlink
         Dim HTP1, HTP2 As Integer
        HTP1 = 0
        HTP2 = 0
        BD = 0
        FT = 0
         'checking document if it contain URLs
        On Error Resume Next ' Handling unknown error for this time only
         If ActiveDocument.Hyperlinks.Count > 0 Then
         For Each Link In ActiveDocument.Hyperlinks '------------------------
         'links vs bookmarks
         If InStr(Link.Address, "http") > 0 Then '------------
         Link.Range.Select
         'checking for address only links
         If Link.TextToDisplay = Link.Address Then
         Selection.TypeText "::url[" & Link.Address & "]"
         HTP1 = HTP1 + 1
         Else 'if link have a text to display
         Selection.TypeText "::url[" & Link.Address & " Title(" & Link.TextToDisplay & ")]"
         HTP2 = HTP2 + 1
         End If
         End If
         BD = BD + 1
         Next Link '------------------------
         Else
         'if not links were found in document
         MsgBox "There are no hyperlinks in the body of document."
         End If
        '------------------------------------------------'
        '------- Dealing Hyperlinks in Footnotes --------'
        '------------------------------------------------'
        Dim h As Hyperlink
        With ActiveDocument
        If .Footnotes.Count >= 1 Then
         With .StoryRanges(wdFootnotesStory)
         For Each h In .Hyperlinks
         If InStr(h.Address, "http") > 0 Then
         h.Range.Select
         'checking for address only links
         If h.TextToDisplay = h.Address Then
         Selection.TypeText "::url[" & h.Address & "]"
         HTP1 = HTP1 + 1
         Else 'if link have a text to display
         Selection.TypeText "::url[" & h.Address & " Title(" & h.TextToDisplay & ")]"
         HTP2 = HTP2 + 1
         End If
         End If
         FT = FT + 1
         Next h
         End With
        End If
        End With
        '------ Statistic Message -------'
         mSg = "Number of Hyperlink(s) in:" & Chr(13) & "Main Document =" & BD & Chr(13) & "Footnote =" & FT & Chr(13) & Chr(13) & "There are " & HTP1 & " link(s) without Title." & Chr(13) & "There are " & HTP2 & " link(s) with Title." & Chr(13) & Chr(13) & "Total " & HTP1 + HTP2 & " link(s) formatted so far."
         MsgBox mSg, vbOKOnly + vbInformation, "Statistics"
        End Sub

Remarque: N'exécutez la macro qu'une seule fois, sinon les fonctions s'imbriqueront les unes dans les autres.



Exemple 8: Code pour définir la numérotation dans les tableaux

1. Comment fonctionne la macro:

La numérotation des lignes dans un tableau fonctionne fondamentalement comme la numérotation habituelle dans Lawlift, c'est-à-dire via des niveaux. Afin d'identifier ces niveaux dans le tableau, l'expression "[#]" est utilisée. Ici, "[#]" définit le 1er niveau, "[##]" le 2e niveau, "[###]" le 3e niveau, et ainsi de suite. Les neuf niveaux fournis par Word peuvent être utilisés. La numérotation à insérer doit être déterminée au préalable dans un modèle de format de liste dans l'en-tête. Le nom du modèle de liste revêt une importance particulière, car il est utilisé dans la macro. Dans notre cas, la liste a été nommée "A. / 1 . / 1.1.". Vous pouvez toutefois donner un autre nom à la liste et adapter le code de la macro à l'endroit correspondant. 

Si vous avez des questions à ce sujet, veuillez contacter notre équipe de support à support@lawlift.de

2. Exemple de code:

Vous trouverez ci-dessous un exemple de code qui applique la numérotation définie dans le modèle de liste aux paragraphes d'un tableau. Ces paragraphes doivent être préalablement marqués dans le modèle LAWLIFT avec [#], [##], etc. Dès que la macro est exécutée, la numérotation est complétée aux endroits correspondants. Notez que la numérotation en dehors du tableau est également prise en compte ici.

Au sens strict, l'exemple de code se compose de deux sous-programmes différents. La première détermine que tous les niveaux de numérotation sont alignés à gauche. Cela garantit une présentation claire à l'intérieur du tableau, où il n'y a souvent pas beaucoup de place pour les indentations. La deuxième sous-routine transforme tous les paragraphes marqués par les commandes [#] en paragraphes numérotés, en se basant sur la numérotation définie auparavant dans le modèle de liste “A. / 1 . / 1.1.”.

Remarque: Vous devrez exécuter la macro manuellement après avoir exporté le fichier depuis Lawlift. Si vous souhaitez qu'elle s'exécute automatiquement, renommez la macro en "AutoOpen". Cela aura pour effet que la macro sera automatiquement exécutée lors de l'ouverture du fichier Word.

Si le document contient un grand nombre d'expressions, l'exécution peut prendre quelques secondes.

Sub Level_setting_A_1_11()
                                Dim X As Integer
                                Const newNumPos As Long = 0
                                Const newTextPos As Long = 0
                                With ActiveDocument.Styles("Liste3").ListTemplate
                                    For X = 1 To 9
                                        .ListLevels(X).TextPosition = newTextPos
                                        .ListLevels(X).NumberPosition = newNumPos
                                    Next
                                End With
                                End Sub
                                Sub Nummerierung_Numeric_with_Zero_indentation()
                                Dim Level As Integer
                                With ActiveDocument.Range.Find
                                    .Text = "\[#*\]"
                                    .MatchWildcards = True
                                Do While .Execute
                                If .Parent.Information(wdWithInTable) Then
                                    Level = Len(.Parent.Text) - 2
                                    .Parent.Style = ActiveDocument.Styles("Liste3")
                                    .Parent.ListFormat.ListLevelNumber = Level
                                    
                                    If Not Level = 1 Then
                                        .Parent.ListFormat.ListTemplate.ListLevels(Level).TextPosition = 0
                                        .Parent.ListFormat.ListTemplate.ListLevels(Level).NumberPosition = 0
                                    End If
                                    
                                    .Parent.Delete
                                End If
                                Loop
                                .MatchWildcards = False
                                End With
                                End Sub

 

 

Exemple 9: Code pour générer une numérotation variable des pièces jointes

1. Comment fonctionne la macro:

Cet exemple de code vous permet de numéroter les pièces jointes de manière variable et de définir des références interactives dans le texte. Pour ce faire, utilisez l'expression "{#VN}", qui est placée à l'endroit de la numérotation correspondante, suivie du nom individuel de la pièce jointe. Pour les références dans le texte, utilisez 'expression "(... Attachment {#VN} : Name_of_the_attachment)".

2. Exemple de code:

Il y a quelques caractéristiques spéciales à prendre en compte lors de l'utilisation de la macro. Pour assurer son bon fonctionnement, le modèle doit contenir l'en-tête «Pièces jointes». De plus, les pièces jointes doivent être affichées dans une liste numérotée. Ci-dessous, vous trouverez une illustration du fonctionnement de la macro:

Sub Numbering_N_Bookmarks_Updated_3()
    'ADT = Mid(AD.Text, 24, Len(AD.Text))
    'Selection.Find.Execute Trim(Left(Mid(AD.Text, 5, Len(AD.Text)), Len(Mid(AD.Text, 5, Len(AD.Text))) - 1)), Forward:=False
        Dim BMT, ADT, L1 As String
        Dim H As Integer
        Dim AD, MyRange As Range: Set MyRange = ActiveDocument.Range
        Selection.EndKey wdStory
        Selection.Find.Execute "Attachements:", Forward:=False
        MyRange.SetRange Start:=Selection.End, End:=MyRange.End
        With MyRange.Find
            .Text = "{#VN}:"
            Do While .Execute
            L1 = MyRange.ListFormat.ListString
            If Right(L1, 1) = "." Then L1 = Left(L1, Len(L1) - 1)
            
            BMT = MyRange.Paragraphs(1).Range.Text
            BMT = Left(BMT, Len(BMT) - 1)
            MyRange.Text = L1 & ":"
            
            '===  Bookmark  ==='
            ActiveDocument.Bookmarks.Add Range:=MyRange.Paragraphs(1).Range, _
                      Name:="BByB" & L1
            '=================='
            Set AD = ActiveDocument.Range
            AD.SetRange Start:=AD.Start, End:=MyRange.Start
                With AD.Find
                    .Text = "\(?*\)"
                    .MatchWildcards = True
                    .Forward = False
                    Do While .Execute
                        AD.MoveEnd wdCharacter, -1
                        AD.MoveStart wdCharacter, 1
                            If InStr(.Parent.Text, BMT) Then
                            
                                AD.Select
                                Selection.Find.Execute "{#VN}"
                                Selection.TypeText L1
                                AD.Select
                                H = H + 1
                                '===  Hyperlink  ===='
                            ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, _
                            SubAddress:="BByB" & L1
                                '===================='
                            
                            Application.StatusBar = L1 & " Reference is in process!!!..."
                            
                            End If
                    .Parent.Collapse wdCollapseEnd
                    Loop
                End With
                    
            .Parent.Collapse wdCollapseEnd
            Loop
        End With
        
    Application.StatusBar = L1 & " Reference are linked converted to " & H & " Hyperlinks. 100% Completed!!!"
    End Sub

IMPORTANT: Si vous souhaitez que la macro s'exécute automatiquement à l'ouverture du fichier Word, vous pouvez la nommer "AutoOpen". Pour obtenir de l'aide, veuillez contacter notre support (support@lawlift.com).

Clause de non-responsabilité

Il se peut que les exigences en matière de sécurité des informations ne permettent pas l'utilisation de macros externes. Dans ce cas, vous devez faire une demande en interne à l'autorité responsable pour vous pour obtenir l'approbation de l'échantillon de code. Vous êtes invité à copier les exemples de code ici.

Was this article helpful?

Can't find what you're looking for?

Our award-winning customer care team is here for you.

Contact Support