(Résolu) VBA Word et suppression de marques de paragraphe (lignes)

VBA Word et suppression de marques de paragraphe (lignes) (Résolu) - VB/VBA/VBS - Programmation

Marsh Posté le 25-08-2023 à 21:47:02    

Bonsoir,
J'ai un fichier avec de multiples (1000 environ) images au dessus de lesquelles se trouvent des lignes vides (marques de paragraphes je crois techniquement)
Je cherche à l'aide d'une macro sous Word à supprimer en masse la ou les  lignes vides?
 
Donc avant les images il y a sauf erreur:
un espace suivi d'un retour à la ligne manuel suivi d'une marque de paragraphe ^l^p il faudrait enlever l'espace et le retour à la ligne manuel ^l.
 
dans le même fichier avant le texte Blasonnement et Blason il y a :
un retour à la ligne manuel suivi d'une marque de paragraphe il faudrait les enlever.
 
C'est pour celà que je pensais à une macro pour le faire en masse en étant sur que celà ne touche que les parties concernées.
 
Je suis preneur de toutes vos idées de codes.
 
Je n'ai peut être pas été clair dans les explications ;-(  et je peux joindre joint un fichier exemple (un extrait d'un très lourd fichier) pour comprendre visuellement éventuellement si je ne fais pas d'erreur dans ce que je décris en caractères spéciaux.
Je vous remercie par avance,
Philippe


Message édité par philm74 le 28-08-2023 à 08:02:22
Reply

Marsh Posté le 25-08-2023 à 21:47:02   

Reply

Marsh Posté le 27-08-2023 à 09:25:32    

J'ai adapté une macro trouvé en ligne comme ceci pour chercher et remplacer mon texte:
 
Selection.Find.ClearFormatting
    Selection.Find.Style = ActiveDocument.Styles("Normal" )
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "^l^pBlasonnement"
        .Replacement.Text = "Blasonnement"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
 
ça fonctionne mais quand il remplace la chaine trouvée "Blasonnement" il l'a réécrit mais pas dans sa couleur d'origine...elle est noire?
Comment puis-je faire pour la réécrire à l'identique?
 
Par ailleur il me faudrait également presque la même chose mais en cherchant les ^l^p devant les images.
Merci

Reply

Marsh Posté le 28-08-2023 à 08:00:22    

Bonjour à tous,
En cherchant un peu,
Voilà ce que j'ai modifié et ça répond exactement à ce que je voulais pour la suppression en gardant le formatage du texte recherché pour la partie contenant du texte.
Je vais reposter pour les Images car là je sèche.
 
Sub supsautligne()
 
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles("Normal" )
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Name = "Times New Roman"
Selection.Find.Replacement.Font.Size = 9
Selection.Find.Replacement.Font.Bold = True
Selection.Find.Replacement.Font.Color = RGB(128, 0, 0)
With Selection.Find
.Text = "^p^l^pBlasonnement"
.Replacement.Text = "^pBlasonnement"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
 
End With
Selection.Find.Execute Replace:=wdReplaceAll

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed