Haga que el 'Título 4' se mantenga con el siguiente, si el siguiente es el 'Título 5', pero no en otros casos.

Haga que el 'Título 4' se mantenga con el siguiente, si el siguiente es el 'Título 5', pero no en otros casos.

Tengo un documento de Word que es un libro de reglas. Para realizar la enumeración, para los diferentes niveles de las reglas (regla 1, apartado 3, artículo 4, inciso b, inciso 1, etc.) se utilizan diferentes títulos. Esto funciona muy bien.

A veces, el subartículo c introduce una lista que contiene varios subartículos. Hasta ahora, todo bien.

Pero a veces, dicho subartículo c es la última línea de la página, lo que significa que la lista de subsubartículos comienza en la primera línea de la página siguiente. Eso no es bueno.

Tampoco puedo incluir los Títulos 4, 5 y 6 ensiempre Continuar con el siguiente, porque entonces la Rúbrica 5 tambiénseguir con el siguientesi el siguiente párrafo no es una lista, pasar demasiado texto a la página siguiente y desperdiciar espacio.

Mi solución hasta ahora ha sido echar un vistazo a todas las partes inferiores de todas las páginas y agregar manualmente "continuar con el siguiente" a la configuración del "párrafo" (en holandés es "Alinea") si las entiendo. Pero como el documento tiene más de 400 páginas, esto no es sostenible.

Encontré una macro en alguna parte (¡gracias y felicitaciones!) que me ayuda un poco:

Sub ColonParaEnd_SetKeepWithNext()

    '=========================
    'Macro created 2010 by Lene Fredborg, DocTools - www.thedoctools.com
    'THIS MACRO IS COPYRIGHT. YOU ARE WELCOME TO USE THE MACRO BUT YOU MUST KEEP THE LINE ABOVE.
    'YOU ARE NOT ALLOWED TO PUBLISH THE MACRO AS YOUR OWN, IN WHOLE OR IN PART.
    '=========================
    'The macro iterates through all paragraphs in the active document
    'If a paragraph ends with a colon, Keep with next is applied
    '=========================

    Dim oPara As Paragraph
    Dim n As Long 'used as counter
    
    n = 0
    
    'Iterate though all paragraphs
    For Each oPara In ActiveDocument.Paragraphs
        With oPara
            'If a colon is found immediately before the paragraph mark, Chr(13), apply Keep with next
            'In case of end of a table cell, the end of cell marker is Chr(13) & Chr(7) - alså handle this
            If Right(.Range.Text, 2) = ":" & Chr(13) Or Right(.Range.Text, 3) = ":" & Chr(13) & Chr(7) Then
                .Range.ParagraphFormat.KeepWithNext = True
                n = n + 1
            End If
        End With
    Next oPara
    
    MsgBox "Finished." & vbCr & "Keep with next applied to " & n & " paragraph(s).", vbOKOnly, "Apply Keep With next"
End Sub

Por lo tanto, me preguntaba si los chicos inteligentes no podrían ayudarme con una macro inteligente (posiblemente basándose en la que cité). Lo que estoy buscando:

  1. Si al Título 4 le sigue el Título 5, haga que esta instancia del Título 4 "se mantenga con el siguiente".
  2. Si al Título 5 le sigue el Título 6, haga que esta instancia del Título 5 "se mantenga con la siguiente".
  3. Si al Título 6 le sigue el Título 7, haga que esta instancia del Título 6 "se mantenga con la siguiente".

¡Gracias de antemano por tu conocimiento!

información relacionada