[VBA WORD] Virer le debut des titres

Virer le debut des titres [VBA WORD] - VB/VBA/VBS - Programmation

Marsh Posté le 22-11-2006 à 14:29:14    

Bonjour
 
Voila mon petit probleme:
 
J'ai sous word un tres long texte avec des titres qui ressemblent a ca
 
1.1.5    5.1.5 Titre
 
Le premiere partie du numbering (le 1.1.5) provient du format lui meme, ou c'est word qui s'occupe de gerer tout ca
Le deuxieme (le 5.1.5) provient de la conversion XML-->RTF: Pour simplifier disons qui'il ete ecrit a la main
 
Le 1er ne peut pas etre retirer ou modifier vu qu'il est gerer par le format
Le 2eme lui n'est que du texte simple, et je souhaiterai l'enlever
 
Donc en gros je souhaiterai faire une macro qui m'enleve le debut (nombres+Tab) mais seulement pour ceux qui ont le format "Titre"
 
2eme question tant que l'on y est  :D  
Je souhaiterai une macro qui me permette de selectionner tous les textes qui ont le format X
 
 
Voila, merci pour votre aide !!!!

Reply

Marsh Posté le 22-11-2006 à 14:29:14   

Reply

Marsh Posté le 22-11-2006 à 16:58:52    

Bonjour,
Pour rechercher si ton parapgraphe correspond au style cherché tu peux faire :
For Each Parag In ActiveDocument.Paragraphs
   if Parag.Style = MonStyle then msgbox(Parag)
Next

Reply

Marsh Posté le 22-11-2006 à 17:32:08    

A mon avis il y a mieux mais j'ai trouvé que ca pour l'instant
 
Sub SupprimeDevanttitre()
    Dim MyRange As Range
    i = 0
    For Each parag In ActiveDocument.Paragraphs
        i = i + 1
        If parag.Style = "Titre 1" Then
            Set Doc = ActiveDocument
            Set MyRange = Doc.Range(Start:=Doc.Paragraphs(i).Range.Start, End:=Doc.Paragraphs(i).Range.End)
            toto = IsNumeric(Mid(MyRange, 1, 1))
            Do While IsNumeric(Mid(MyRange, 1, 1)) Or Mid(MyRange, 1, 1) = "." Or Mid(MyRange, 1, 1) = " "
                MyRange.Characters(1).Delete
            Loop
        End If
    Next
End Sub
 
J'espere que ca t'aide.

Reply

Marsh Posté le 22-11-2006 à 18:00:10    

Bonsoir Paul Hood
pour mon info, quel est le rôle de toto?
Cordialement

Reply

Marsh Posté le 23-11-2006 à 11:30:14    

Aucun rôle, jusque un reste de debug... a supprimer.

Reply

Marsh Posté le 23-11-2006 à 12:10:10    

Bonjour,
Merci  beaucoup
Cordialement

Reply

Marsh Posté le 27-11-2006 à 14:38:39    

Merci pour ces reponses ;)
Je vais tester ca

Reply

Marsh Posté le 03-12-2006 à 19:09:34    

Bonjour,
 
tu peux faire un rechercher remplacer comme suit:
 

Code :
  1. Sub Macro1()
  2.     Selection.Find.Style = ActiveDocument.Styles("Titre 1" )
  3.     With Selection.Find
  4.         .ClearFormatting
  5.         .Replacement.ClearFormatting
  6.         .Text = "[0-9. ]{1,}"
  7.         .Replacement.Text = ""
  8.         .Forward = True
  9.         .Wrap = wdFindContinue
  10.         .Format = True
  11.         .MatchCase = False
  12.         .MatchWholeWord = False
  13.         .MatchAllWordForms = False
  14.         .MatchSoundsLike = False
  15.         .MatchWildcards = True
  16.         .Execute Replace:=wdReplaceAll
  17.     End With
  18. End Sub


 

Reply

Sujets relatifs:

Leave a Replay

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