2017-08-22 1 views
1

Codeur VBA Excel assez expérimenté, débutant pour les macros Word.Macro VBA pour ajouter une ligne vide avant un numéro d'en-tête dans Word 2013

J'ai une sortie de document Word 2013 avec presque 300 paragraphes numérotés qui s'exécutent tous avec un formatage minimal. Les numéros de paragraphe commencent tous dans la colonne 1, avec le paragraphe de texte entier déplacé sur un onglet de 5 espaces, jusqu'au prochain numéro qui est de retour dans la colonne 1 et ainsi de suite. Pas de lignes vides jusqu'à la fin du document.

Existe-t-il un moyen d'écrire une macro qui parcourt tout le document, et s'il trouve un nombre dans la colonne 1, qu'il ajoute ensuite une ligne vide avant elle?

Un grand merci d'avance pour toute aide.

+0

Les numéros sont-ils réels? –

+0

Pas de puces, juste une numérotation commençant par 1. et un en-tête, puis le texte comme un paragraphe en retrait, suivi de 2. et un en-tête, et ainsi de suite. – parodytx

Répondre

0

ce que je comprends votre document ressemble à ceci:

1  Heading 
test test test 
2  Other heading 
test test test 
test 33test test 
test test test2 
test test test 
test 44 test test 
test test test 
3  Other heading 

Et vous aimeriez avoir comme ceci:

. <- would represent a empty line 
1  Heading 
test test test 

2  Other heading 
test test test 
test 33test test 
test test test2 
test test test 
test 44test test 
test test test 

3  Other heading 

Dans ce cas, vous aurez pas besoin d'une macro. Vous pouvez utiliser l'option Search and Replace de Microsoft Word et une certaine magie Wildcard.

Utilisez la recherche Remplacer par l'option activée Use wildcards

  • Rechercher: [^ 11-^13] (< [0-9]>)
  • Remplacer par: ^13^13 \ 1

Ventilation:

[^11-^13](<[0-9]>) 

^11  = Shift-Enter (New line) 
^13  = Enter (Paragrah) 
[]  = Marks the range of the two characters 
[^11-^13] = Will find any Shift-Enter or Enter character 
()  = Marks a group 
<>  = Marks the start and end of a word 
[0-9]  = Will find a single character 0-9 

^13^13\1 

^13 = inserts a paragraph 
\1 = inserts the group marked in the search string 

Pour plus d'informations sur l'utilisation de cette fonctionnalité, consultez cette page: http://www.gmayor.com/replace_using_wildcards.htm

+0

Merci, je vais continuer à travailler sur cette solution. Au premier essai, il échoue, car il y a des chiffres dans le texte aussi bien que ça se ramasse. Existe-t-il un moyen de spécifier un chiffre au début d'une ligne ou limité aux colonnes 1-2? – parodytx

+0

J'ai mis à jour ma réponse en fonction de votre nouvelle exigence. Le tout premier en-tête ne fonctionnera pas avec cette approche. Je suppose que ce serait encore une solution réalisable. –