VB "styler" les paragraphes contenant un mot donné
5 réponses
Le Nordiste
Bonjour
J'ai un document contenant 200 paragraphes environ.
Certain paragraphes contiennent la chaine "-version : "
Je veux que ces paragraphes passent en "style 2", pour le sommaire,
avec la partie de texte commen=E7ant par -version=85 juque la fin de
paragraphe, reste en taille normale.
Une boucle en VB ferait l'affaire, mais que mettre dedans ?
'""""""""""""""""
Dim Para As Paragraph, a
Mot_cherch=E9 =3D "-version du : "
ActiveDocument.Bookmarks("\StartOfDoc").Select
For Each Para In ActiveDocument.Paragraphs
Para.Range.Select
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Geo
Bonjour
J'ai un document contenant 200 paragraphes environ. Certain paragraphes contiennent la chaine "-version : "
Je veux que ces paragraphes passent en "style 2", pour le sommaire, avec la partie de texte commençant par -version… juque la fin de paragraphe, reste en taille normale.
Pas compris. Vous voulez ne changer le style que dans la table des matières et pour les lignes contenant "-version" ?
Une boucle en VB ferait l'affaire, mais que mettre dedans ?
Un rechercher remplacer devrait faire l'affaire ? non ? ;o)
Sinon :
ActiveDocument.Bookmarks("StartOfDoc").Select
est inutile
For Each Para In ActiveDocument.Paragraphs
Au lieu de active document, il faut sans doute se limiter à la table des matières
Para.Range.Select
Probablement inutile aussi.
Mauvaise journée, ciel gris de la pluie depuis hier, ça agit sur le moral !
-- A+
Bonjour
J'ai un document contenant 200 paragraphes environ.
Certain paragraphes contiennent la chaine "-version : "
Je veux que ces paragraphes passent en "style 2", pour le sommaire,
avec la partie de texte commençant par -version… juque la fin de
paragraphe, reste en taille normale.
Pas compris.
Vous voulez ne changer le style que dans la table des matières et pour
les lignes contenant "-version" ?
Une boucle en VB ferait l'affaire, mais que mettre dedans ?
Un rechercher remplacer devrait faire l'affaire ? non ? ;o)
Sinon :
ActiveDocument.Bookmarks("StartOfDoc").Select
est inutile
For Each Para In ActiveDocument.Paragraphs
Au lieu de active document, il faut sans doute se limiter à la table
des matières
Para.Range.Select
Probablement inutile aussi.
Mauvaise journée, ciel gris de la pluie depuis hier, ça agit sur le
moral !
J'ai un document contenant 200 paragraphes environ. Certain paragraphes contiennent la chaine "-version : "
Je veux que ces paragraphes passent en "style 2", pour le sommaire, avec la partie de texte commençant par -version… juque la fin de paragraphe, reste en taille normale.
Pas compris. Vous voulez ne changer le style que dans la table des matières et pour les lignes contenant "-version" ?
Une boucle en VB ferait l'affaire, mais que mettre dedans ?
Un rechercher remplacer devrait faire l'affaire ? non ? ;o)
Sinon :
ActiveDocument.Bookmarks("StartOfDoc").Select
est inutile
For Each Para In ActiveDocument.Paragraphs
Au lieu de active document, il faut sans doute se limiter à la table des matières
Para.Range.Select
Probablement inutile aussi.
Mauvaise journée, ciel gris de la pluie depuis hier, ça agit sur le moral !
-- A+
Le Nordiste
> > Je veux que ces paragraphes passent en "style 2", pour le sommaire,
Mes paragraphes contenant "- version du : " sont les titres précédents des paragraphes "normaux". C'est pour cela que je parle de "pour le sommaire" mais c'est ambigu comme tournure, je le concéde.$
Mon texte se présente sous la forme
Nom_de_requete_1 -version du : 01/01/2008- Ma requete_1
Nom_de_requete_2 -version du : 01/01/2008- Ma requete_2
> > Je veux que ces paragraphes passent en "style 2", pour le sommaire,
Mes paragraphes contenant "- version du : " sont les titres précédents
des paragraphes "normaux".
C'est pour cela que je parle de "pour le sommaire" mais c'est ambigu
comme tournure, je le concéde.$
Mon texte se présente sous la forme
Nom_de_requete_1 -version du : 01/01/2008-
Ma requete_1
Nom_de_requete_2 -version du : 01/01/2008-
Ma requete_2
> > Je veux que ces paragraphes passent en "style 2", pour le sommaire,
Mes paragraphes contenant "- version du : " sont les titres précédents des paragraphes "normaux". C'est pour cela que je parle de "pour le sommaire" mais c'est ambigu comme tournure, je le concéde.$
Mon texte se présente sous la forme
Nom_de_requete_1 -version du : 01/01/2008- Ma requete_1
Nom_de_requete_2 -version du : 01/01/2008- Ma requete_2
Geo
Bonjour à Le Nordiste qui nous a écrit :
Je veux que ces paragraphes passent en "style 2", pour le sommaire,
Mes paragraphes contenant "- version du : " sont les titres précédents des paragraphes "normaux".
Ca doit faire qqch comme ceci (pas testé) : Sub StyleNormal() Dim Para As Paragraph, a mot_cherché = "-version du : " For Each Para In ActiveDocument.Paragraphs If InStr(1, Para.Range.Text, mot_cherché, vbTextCompare) > 0 Then Para.Range.Style = "Normal" End If Next Para End Sub
-- A+
Bonjour à Le Nordiste qui nous a écrit :
Je veux que ces paragraphes passent en "style 2", pour le sommaire,
Mes paragraphes contenant "- version du : " sont les titres précédents
des paragraphes "normaux".
Ca doit faire qqch comme ceci (pas testé) :
Sub StyleNormal()
Dim Para As Paragraph, a
mot_cherché = "-version du : "
For Each Para In ActiveDocument.Paragraphs
If InStr(1, Para.Range.Text, mot_cherché, vbTextCompare) > 0 Then
Para.Range.Style = "Normal"
End If
Next Para
End Sub
Je veux que ces paragraphes passent en "style 2", pour le sommaire,
Mes paragraphes contenant "- version du : " sont les titres précédents des paragraphes "normaux".
Ca doit faire qqch comme ceci (pas testé) : Sub StyleNormal() Dim Para As Paragraph, a mot_cherché = "-version du : " For Each Para In ActiveDocument.Paragraphs If InStr(1, Para.Range.Text, mot_cherché, vbTextCompare) > 0 Then Para.Range.Style = "Normal" End If Next Para End Sub
-- A+
Le Nordiste
merci Géo. C'est tout à fait ça.
Mais si j'osais, je demanderais encore :
Est il possible d'avoir sur une seule ligne deux styles ? (ou quelque chose qui y ressemble) exemple : Nom_de_requete_1 -version du : 01/01/2008- |______style 2_____| |________normal______|
Sachant que la seule partie constante est "-version du : " et le tiret en fin de ligne.
Merci de ta collaboration désinterressée ET éminement intéressante.
merci Géo. C'est tout à fait ça.
Mais si j'osais, je demanderais encore :
Est il possible d'avoir sur une seule ligne deux styles ?
(ou quelque chose qui y ressemble)
exemple :
Nom_de_requete_1 -version du : 01/01/2008-
|______style 2_____| |________normal______|
Sachant que la seule partie constante est
"-version du : " et le tiret en fin de ligne.
Merci de ta collaboration désinterressée
ET éminement intéressante.
Est il possible d'avoir sur une seule ligne deux styles ? (ou quelque chose qui y ressemble) exemple : Nom_de_requete_1 -version du : 01/01/2008- |______style 2_____| |________normal______|
Sachant que la seule partie constante est "-version du : " et le tiret en fin de ligne.
Merci de ta collaboration désinterressée ET éminement intéressante.
Geo
Bonjour
merci Géo. C'est tout à fait ça.
Mais si j'osais, je demanderais encore :
Est il possible d'avoir sur une seule ligne deux styles ? (ou quelque chose qui y ressemble) exemple : Nom_de_requete_1 -version du : 01/01/2008-
______style 2_____| |________normal______|
Un peu plus compliqué en effet, il y a (au moins) deux pistes, soient mettre un style comme indiqué sur l'exemple, soit faire une mise en forme "manuelle". Je prêche en général pour l'utilisation de styles, surtout si ce style_2 doit évoluer, mais avec deux styles différents sur la même ligne en vba, il faudrait que je creuse une peu, donc je vais quand même aller au plus court, c'est à dire la mise en forme manuelle.
Sub StyleNormal() Dim Para As Paragraph Dim Requete As Range Dim Mot_cherché As String Dim pos As Integer Mot_cherché = "-version du : " For Each Para In ActiveDocument.Paragraphs pos = InStr(1, Para.Range.Text, Mot_cherché, vbTextCompare) If pos > 0 Then Para.Range.Style = "Normal" Set Requete = ActiveDocument.Range( _ Start:=Para.Range.Start, _ End:=Para.Range.Start + pos - 1) ' mise en forme manuelle Requete.Font.Size = 12 End If Next Para End Sub
Merci de ta collaboration désinterressée ET éminement intéressante.
Merci pour les encouragements.
-- A+
Bonjour
merci Géo. C'est tout à fait ça.
Mais si j'osais, je demanderais encore :
Est il possible d'avoir sur une seule ligne deux styles ?
(ou quelque chose qui y ressemble)
exemple :
Nom_de_requete_1 -version du : 01/01/2008-
______style 2_____| |________normal______|
Un peu plus compliqué en effet, il y a (au moins) deux pistes, soient
mettre un style comme indiqué sur l'exemple, soit faire une mise en
forme "manuelle".
Je prêche en général pour l'utilisation de styles, surtout si ce
style_2 doit évoluer, mais avec deux styles différents sur la même
ligne en vba, il faudrait que je creuse une peu, donc je vais quand
même aller au plus court, c'est à dire la mise en forme manuelle.
Sub StyleNormal()
Dim Para As Paragraph
Dim Requete As Range
Dim Mot_cherché As String
Dim pos As Integer
Mot_cherché = "-version du : "
For Each Para In ActiveDocument.Paragraphs
pos = InStr(1, Para.Range.Text, Mot_cherché, vbTextCompare)
If pos > 0 Then
Para.Range.Style = "Normal"
Set Requete = ActiveDocument.Range( _
Start:=Para.Range.Start, _
End:=Para.Range.Start + pos - 1)
' mise en forme manuelle
Requete.Font.Size = 12
End If
Next Para
End Sub
Merci de ta collaboration désinterressée
ET éminement intéressante.
Est il possible d'avoir sur une seule ligne deux styles ? (ou quelque chose qui y ressemble) exemple : Nom_de_requete_1 -version du : 01/01/2008-
______style 2_____| |________normal______|
Un peu plus compliqué en effet, il y a (au moins) deux pistes, soient mettre un style comme indiqué sur l'exemple, soit faire une mise en forme "manuelle". Je prêche en général pour l'utilisation de styles, surtout si ce style_2 doit évoluer, mais avec deux styles différents sur la même ligne en vba, il faudrait que je creuse une peu, donc je vais quand même aller au plus court, c'est à dire la mise en forme manuelle.
Sub StyleNormal() Dim Para As Paragraph Dim Requete As Range Dim Mot_cherché As String Dim pos As Integer Mot_cherché = "-version du : " For Each Para In ActiveDocument.Paragraphs pos = InStr(1, Para.Range.Text, Mot_cherché, vbTextCompare) If pos > 0 Then Para.Range.Style = "Normal" Set Requete = ActiveDocument.Range( _ Start:=Para.Range.Start, _ End:=Para.Range.Start + pos - 1) ' mise en forme manuelle Requete.Font.Size = 12 End If Next Para End Sub
Merci de ta collaboration désinterressée ET éminement intéressante.