Suppression d'un saut de paragraphe entre deux tableaux sous Word 2003

MatFoX31 Messages postés 2 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 10 février 2011 - 8 févr. 2011 à 18:01
MatFoX31 Messages postés 2 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 10 février 2011 - 10 févr. 2011 à 15:27
Bonjour à tous !

D'habitude je trouve toujours mon bonheur sur ce site lorsque je suis bloqué, mais cette fois-ci que nenni.

Désolé à l'avance si je n'ai pas posté au bon endroit, il ne s'agit pas à proprement parler de VB mais de VBA, voire de Word.

Voici le problème :

Dans mon document Word, j'ai un tableau d'une ligne, un retour paragraphe, puis un tableau d'une ligne, un retour paragraphe et ainsi de suite. Dans ce document, il y a également du texte, des titres,...

Je voudrais, à l'aide d'une macro, supprimer tous les retours paragraphe du document à chaque fois qu'il se situe entre deux tableaux.

Ce que j'ai fait comme test : A l'aide de la fonction "Rechercher" de Word, si l'on met dans la zone de texte le caractère "^p", on détecte bien les sauts de paragraphe entre tableaux, et ceux du reste du document également.
Par contre, si on utilise la fonction "Remplacer", et qu'on remplace par "toto" (original je sais...), les sauts de paragraphes entre tableaux ne sont pas remplacés, alors que ceux du reste du document le sont.
Les sauts de paragraphe entre tableaux sont-ils différent des sauts de paragraphe "normaux" en terme de caractère de détection ? Si oui, il y peut-être un moyen de l'exploiter pour n'appliquer cette mise en forme qu'aux sauts de paragraphe entre 2 tableaux.

Merci d'avance !

2 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
9 févr. 2011 à 16:58
Salut,

Ces quoi un saut de paragraphe ??? ... je connais :

Saut de page
Saut de colonne
Saut de retour à la ligne

Page suivante
Continu
Page impaire
Page paire

mais le "saut de paragraphe" connais pas

pour t'aider il vaudrait mieux savoir à quoi l'on doit s'attaquer

A+
0
MatFoX31 Messages postés 2 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 10 février 2011
10 févr. 2011 à 15:27
Effectivement, "saut" n'est pas le bon terme, c'est une marque de paragraphe, soit l'équivalent de "^p".

Mais je viens de trouver une solution à mon problème. Je me place à la fin de chaque tableau, puis juste après en être sorti, je supprime la ligne active si celle ci est égale à une marque de paragraphe.

Voici le code si ça peut intéresser quelqu'un :

Dim ligne As Integer
Dim valeur As Integer
Dim nbTableaux As Integer
Dim nbTableaux_after As Integer
Dim tableau As Integer

Sub Supprime_lignes_vides()
tableau = 3 'Je ne dois pas toucher aux 2 premiers tableaux
nbTableaux = ActiveDocument.Tables.Count

While tableau <= nbTableaux
ActiveDocument.Tables(tableau).Select
If Selection.Information(wdWithInTable) = True Then
Selection.Tables(1).Select
Selection.ParagraphFormat.KeepWithNext = True
Selection.Cells(Selection.Cells.Count).Select
Do While Selection.Information(wdWithInTable) = True
Selection.MoveRight Unit:=wdCharacter, Count:=1
Loop
If Selection = Chr(13) Then Selection.Delete Unit:=wdCharacter, Count:=1
End If
nbTableaux_after = ActiveDocument.Tables.Count

If nbTableaux = nbTableaux_after Then
Selection.ParagraphFormat.KeepWithNext = False
tableau = tableau + 1
Else
nbTableaux = nbTableaux_after
End If

Wend

End Sub
0
Rejoignez-nous