Una de las mejoras es que tengo unas 50 l�neas que son los t�tulos de esta
forma:
1 T�tulo1
1.2 T�tulo 1.2
1.3 T�tulo 1.3
1.3.1 T�tulo 1.3.1
2 T�tulo2
....
Cada l�nea de este t�tulo se caracter�za por tener una tabulaci�n delante
(el resto del documento no) as� que si yo utilizo este c�digo
Selection.Find.ClearFormatting
With Selection.Find
.Text = "^t"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
me va seleccionando el tabulador que hay antes del T�tulo
Ahora bien, yo querr�a seleccionar una l�nea, y que busque si tiene alg�n
punto, si no lo tiene le asigne el estilo T�tulo 1, si tiene un punto el
estilo T�tulo 2 y as� sucesivamente.
Ser�a posible
GRACIAS
Bien pregunto dudas que me vienen :P >>
- La linea que quieres seleccionar es cualquiera o alguna en especial ?
-Han de ser lineas o bien parrafos completos ???
Comentanos...!
Saludos
Monica
-- Consulta---
> Tengo un documento con 300 p�ginas y quiero realizar dos mejoras con �l
> sin trabajar mucho ;-)
>
> Una de las mejoras es que tengo unas 50 l�neas que son los t�tulos de esta
> forma:
>
> 1 T�tulo1
> 1.2 T�tulo 1.2
> 1.3 T�tulo 1.3
> 1.3.1 T�tulo 1.3.1
> 2 T�tulo2
> ....
>
> Cada l�nea de este t�tulo se caracter�za por tener una tabulaci�n delante
> (el resto del documento no) as� que si yo utilizo este c�digo
>
> Selection.Find.ClearFormatting
> With Selection.Find
> .Text = "^t"
> .Replacement.Text = ""
> .Forward = True
> .Wrap = wdFindAsk
> .Format = False
> .MatchCase = False
> .MatchWholeWord = False
> .MatchWildcards = False
> .MatchSoundsLike = False
> .MatchAllWordForms = False
> End With
> Selection.Find.Execute
>
> me va seleccionando el tabulador que hay antes del T�tulo
>
> Ahora bien, yo querr�a seleccionar una l�nea, y que busque si tiene alg�n
> punto, si no lo tiene le asigne el estilo T�tulo 1, si tiene un punto el
> estilo T�tulo 2 y as� sucesivamente.
>
> Ser�a posible
>
> GRACIAS
>
>
he hecho esto este fin de semana, pero no acaba de funcionar del todo
Dim parrafo As Paragraph
For Each parrafo In ActiveDocument
Selection.Find.ClearFormatting
With Selection.Find
.Text = "^t"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
' Selection.Find.Execute s�lo busca
' Selection.Find.Execute Replace:=wdReplaceAll reemplaza todo
Selection.Find.Execute Replace:=wdReplaceOne
ActiveDocument.Paragraphs(ActiveDocument.Range(0,
Selection.End).Paragraphs.Count).Range.Select
Select Case Len(Selection.Text) - Len(Replace(Selection.Text, ".", ""))
Case 0
Selection.Range.Paragraphs.Style = "T�tulo 1"
Case 1
Selection.Range.Paragraphs.Style = "T�tulo 2"
Case 2
Selection.Range.Paragraphs.Style = "T�tulo 3"
End Select
next parrafo
End Sub
"Monica May" <t...@NOSPAM.teladearana.es> escribi� en el mensaje
news:Oq%23bQ8MY...@TK2MSFTNGP04.phx.gbl...
> holas Chiri,
>
> Bien pregunto dudas que me vienen :P >>
>
> - La linea que quieres seleccionar es cualquiera o alguna en especial ?
> -Han de ser lineas o bien parrafos completos ???
>
> Comentanos...!
>
> Saludos
> Monica
>
>
> -- Consulta---
>> Tengo un documento con 300 p�ginas y quiero realizar dos mejoras con �l
>> sin trabajar mucho ;-)
>>
>> Una de las mejoras es que tengo unas 50 l�neas que son los t�tulos de
>> esta forma:
>>
>> 1 T�tulo1
>> 1.2 T�tulo 1.2
>> 1.3 T�tulo 1.3
>> 1.3.1 T�tulo 1.3.1
>> 2 T�tulo2
>> ....
>>
>> Cada l�nea de este t�tulo se caracter�za por tener una tabulaci�n delante
>> (el resto del documento no) as� que si yo utilizo este c�digo
>>
>> Selection.Find.ClearFormatting
>> With Selection.Find
>> .Text = "^t"
>> .Replacement.Text = ""
>> .Forward = True
>> .Wrap = wdFindAsk
>> .Format = False
>> .MatchCase = False
>> .MatchWholeWord = False
>> .MatchWildcards = False
>> .MatchSoundsLike = False
>> .MatchAllWordForms = False
>> End With
>> Selection.Find.Execute
>>
Vale la idea la tengo quieres buscar los puntos de un parrafo y segun sus
puntos aplicar un estilo u otro pero..... este codigo da error si se
utilizan [ listas de numeracion y vinetas ] entonces entiendo que no hay
ninguna lista de numeracion y vinetas en el documento no????
y que ... el tema de >>
1 T�tulo1
1.2 T�tulo 1.2
1.3 T�tulo 1.3
1.3.1 T�tulo 1.3.1
2 T�tulo2
Esta aplicado manualmente este tipo de numeracion???
es que cambia el codigo si esta manual o esta aplicando las listas de
numeracion y vineta ....
Comentanos como tienes este tipo de numeracion ...
Saludos
Monica
--
> Selecciono las l�neas que tienen una tabulaci�n
>
> he hecho esto este fin de semana, pero no acaba de funcionar del todo
>
> Dim parrafo As Paragraph
>
> For Each parrafo In ActiveDocument
>
> Selection.Find.ClearFormatting
>
> With Selection.Find
>
> .Text = "^t"
>
> .Replacement.Text = ""
>
> .Forward = True
>
> .Wrap = wdFindContinue
>
> .Format = False
>
> .MatchCase = False
>
> .MatchWholeWord = False
>
> .MatchWildcards = False
>
> .MatchSoundsLike = False
>
> .MatchAllWordForms = False
>
> End With
>
> ' Selection.Find.Execute s�lo busca
>
> ' Selection.Find.Execute Replace:=wdReplaceAll reemplaza todo
>
>
>
> Selection.Find.Execute Replace:=wdReplaceOne
>
> ActiveDocument.Paragraphs(ActiveDocument.Range(0,
> Selection.End).Paragraphs.Count).Range.Select
>
>
>
> Select Case Len(Selection.Text) - Len(Replace(Selection.Text, ".", ""))
>
> Case 0
>
> Selection.Range.Paragraphs.Style = "T�tulo 1"
>
> Case 1
>
> Selection.Range.Paragraphs.Style = "T�tulo 2"
>
> Case 2
>
> Selection.Range.Paragraphs.Style = "T�tulo 3"
>
> End Select
>
>
>
> next parrafo
>
>
>
> End Sub
>
> "Monica May" <t...@NOSPAM.teladearana.es> escribi� en el mensaje
> news:Oq%23bQ8MY...@TK2MSFTNGP04.phx.gbl...
>> holas Chiri,
>>
>> Bien pregunto dudas que me vienen :P >>
>>
>> - La linea que quieres seleccionar es cualquiera o alguna en especial ?
>> -Han de ser lineas o bien parrafos completos ???
>>
>> Comentanos...!
>>
>> Saludos
>> Monica
>>
>>
>> -- Consulta---
>>> Tengo un documento con 300 p�ginas y quiero realizar dos mejoras con �l
>>> sin trabajar mucho ;-)
>>>
>>> Una de las mejoras es que tengo unas 50 l�neas que son los t�tulos de
>>> esta forma:
>>>
>>> 1 T�tulo1
>>> 1.2 T�tulo 1.2
>>> 1.3 T�tulo 1.3
>>> 1.3.1 T�tulo 1.3.1
>>> 2 T�tulo2
>>> ....
>>>
>>> Cada l�nea de este t�tulo se caracter�za por tener una tabulaci�n
>>> delante (el resto del documento no) as� que si yo utilizo este c�digo
>>>
>>> Selection.Find.ClearFormatting
>>> With Selection.Find
>>> .Text = "^t"
>>> .Replacement.Text = ""
>>> .Forward = True
>>> .Wrap = wdFindAsk
>>> .Format = False
>>> .MatchCase = False
>>> .MatchWholeWord = False
>>> .MatchWildcards = False
>>> .MatchSoundsLike = False
>>> .MatchAllWordForms = False
>>> End With
>>> Selection.Find.Execute
>>>
la idea es buscar los p�rrafos que tienen tabulaci�n al principio (son los
�nicos que la tienen), y si ese p�rrafo tiene tabulaci�n, mirar si tiene 0
puntos, 1 punto, 2 puntos, y en funci�n de ello, poner un estilo u otro
muchas gracias por estar ah�
"Monica May" <t...@NOSPAM.teladearana.es> escribi� en el mensaje
news:e5wMpAZY...@TK2MSFTNGP02.phx.gbl...
> hola Chiri,
>
>
> Vale la idea la tengo quieres buscar los puntos de un parrafo y segun sus
> puntos aplicar un estilo u otro pero..... este codigo da error si se
> utilizan [ listas de numeracion y vinetas ] entonces entiendo que no hay
> ninguna lista de numeracion y vinetas en el documento no????
>
> y que ... el tema de >>
>
> 1 T�tulo1
> 1.2 T�tulo 1.2
> 1.3 T�tulo 1.3
> 1.3.1 T�tulo 1.3.1
> 2 T�tulo2
>
> Esta aplicado manualmente este tipo de numeracion???
>
> es que cambia el codigo si esta manual o esta aplicando las listas de
> numeracion y vineta ....
>
> Comentanos como tienes este tipo de numeracion ...
>
> Saludos
> Monica
>
>
> --
>> Selecciono las l�neas que tienen una tabulaci�n
>>
>> he hecho esto este fin de semana, pero no acaba de funcionar del todo
>>
>> Dim parrafo As Paragraph
>>
>> For Each parrafo In ActiveDocument
>>
>> Selection.Find.ClearFormatting
>>
>> With Selection.Find
>>
>> .Text = "^t"
>>
>> .Replacement.Text = ""
>>
>> .Forward = True
>>
>> .Wrap = wdFindContinue
>>
>> .Format = False
>>
>> .MatchCase = False
>>
>> .MatchWholeWord = False
>>
>> .MatchWildcards = False
>>
>> .MatchSoundsLike = False
>>
>> .MatchAllWordForms = False
>>
>> End With
>>
>> ' Selection.Find.Execute s�lo busca
>>
>> ' Selection.Find.Execute Replace:=wdReplaceAll reemplaza todo
>>
>>
>>
>> Selection.Find.Execute Replace:=wdReplaceOne
>>
>> ActiveDocument.Paragraphs(ActiveDocument.Range(0,
>> Selection.End).Paragraphs.Count).Range.Select
>>
>>
>>
>> Select Case Len(Selection.Text) - Len(Replace(Selection.Text, ".",
>> ""))
>>
>> Case 0
>>
>> Selection.Range.Paragraphs.Style = "T�tulo 1"
>>
>> Case 1
>>
>> Selection.Range.Paragraphs.Style = "T�tulo 2"
>>
>> Case 2
>>
>> Selection.Range.Paragraphs.Style = "T�tulo 3"
>>
>> End Select
>>
>>
>>
>> next parrafo
>>
>>
>>
>> End Sub
>>
>> "Monica May" <t...@NOSPAM.teladearana.es> escribi� en el mensaje
>> news:Oq%23bQ8MY...@TK2MSFTNGP04.phx.gbl...
>>> holas Chiri,
>>>
>>> Bien pregunto dudas que me vienen :P >>
>>>
>>> - La linea que quieres seleccionar es cualquiera o alguna en especial ?
>>> -Han de ser lineas o bien parrafos completos ???
>>>
>>> Comentanos...!
>>>
>>> Saludos
>>> Monica
>>>
>>>
>>> -- Consulta---
>>>> Tengo un documento con 300 p�ginas y quiero realizar dos mejoras con �l
>>>> sin trabajar mucho ;-)
>>>>
>>>> Una de las mejoras es que tengo unas 50 l�neas que son los t�tulos de
>>>> esta forma:
>>>>
>>>> 1 T�tulo1
>>>> 1.2 T�tulo 1.2
>>>> 1.3 T�tulo 1.3
>>>> 1.3.1 T�tulo 1.3.1
>>>> 2 T�tulo2
>>>> ....
>>>>
>>>> Cada l�nea de este t�tulo se caracter�za por tener una tabulaci�n
>>>> delante (el resto del documento no) as� que si yo utilizo este c�digo
>>>>
>>>> Selection.Find.ClearFormatting
>>>> With Selection.Find
>>>> .Text = "^t"
>>>> .Replacement.Text = ""
>>>> .Forward = True
>>>> .Wrap = wdFindAsk
>>>> .Format = False
>>>> .MatchCase = False
>>>> .MatchWholeWord = False
>>>> .MatchWildcards = False
>>>> .MatchSoundsLike = False
>>>> .MatchAllWordForms = False
>>>> End With
>>>> Selection.Find.Execute
>>>>
> no, el texto en este momento no tiene formato
> la idea es buscar los parrafos que tienen tabulacion al principio (son los
> unicos que la tienen), y si ese parrafo tiene tabulacion, mirar si tiene 0
> puntos, 1 punto, 2 puntos, y en funcion de ello, poner un estilo u otro
Este codigo que nos ofreces solo sera valido para las tabulaciones pero NO
si hay numeracion y vinetas :P >>
Bien modifica la linea siguiente >>
For Each parrafo In ActiveDocument.Paragraphs
luego elimina estas lineas >>
ActiveDocument.Paragraphs(ActiveDocument.Range(0, _
Selection.End).Paragraphs.Count).Range.Select
y ya lo tienes pero te buscara Parrafos eh? no lineas sueltas, sino aquellos
parrafos que tengan tabulacion...
Comentanos...!
Saludos
Monica
--
www.fermu.com
www.teladearana.es
muchas gracias
"Monica May" <t...@NOSPAM.teladearana.es> escribi� en el mensaje
news:e0GRg$xYKHA...@TK2MSFTNGP04.phx.gbl...
> ...pero solo me sirve para T�tulo1 puesto que no puedo seleccionar el
> parrafo para averiguar cuantos puntos tiene y en funcion de ello, poner
> un T�tulo u otro
apss ahora me he perdido :( , el codigo ya pone el titulo 1, 2 o 3 a los
parrafos con tabulacion segun sus puntos, si el parrafo tiene un punto te
pondra el titulo 1, si tiene dos puntos el titulo 2 y si tiene 3 puntos el
titulo 3... no tienes que seleccionar el parrafo para saberlo sino que el
codigo ya te lo hace ...
Comentanos..!
Case 0 [ Te pondra el estilo titulo uno para aquellos que no tengan
puntos ]
Case 1 [ Aquellos que tengan un punto -> titulo 1 ]
Case 2 [ Aquellos que tengan dos puntos -> Titulo 2]
El codigo de mis pruebas >>
'[]
Sub demo()
Dim parrafo As Paragraph
For Each parrafo In ActiveDocument.Paragraphs
With Selection
With .Find
.ClearFormatting
.Text = "^t"
.Forward = True
.Wrap = wdFindContinue
.Execute Replace:=wdReplaceOne
End With
.EndKey wdLine, wdExtend
Select Case Len(.Text) - Len(Replace(.Text, ".", ""))
Case 0
.Range.Paragraphs.Style = "T�tulo 1"
Case 1
.Range.Paragraphs.Style = "T�tulo 2"
Case 2
.Range.Paragraphs.Style = "T�tulo 3"
Case 3
.Range.Paragraphs.Style = "T�tulo 4"
MsgBox "parrafo de tres puntos"
Case Is > 3
Exit Sub
End Select
End With
Next
End Sub
'[]
Mira a ver si me comi algo al comentar :P !
Saludos
Monica
> ActiveDocument.Paragraphs(ActiveDocument.Range(0, _
> Selection.End).Paragraphs.Count).Range.Select
no hab�a puesto esta que hace parecida funci�n pero no corta el selection
.EndKey wdLine, wdExtend
entonces donde estaba el cursor, nunca hab�a "." con lo que siempre era Case
0
Por cierto, a este c�digo, le pasa lo mismo que al siguiente, no termina
nunca, supongo que igual que el anterior se podr� finalizar de forma
anticipada
muchas gracias por todo
un asludo
"Monica May" <t...@NOSPAM.teladearana.es> escribi� en el mensaje
news:%235BzSZ%23YKH...@TK2MSFTNGP02.phx.gbl...
> Aclaracion :)
>
> Case 0 [ Te pondra el estilo titulo uno para aquellos que no tengan
> puntos ]
>
> Case 1 [ Aquellos que tengan un punto -> titulo 1 ]
>
> Case 2 [ Aquellos que tengan dos puntos -> Titulo 2]
>
> El codigo de mis pruebas >>
>
> '[]
>
> Sub demo()
>
> Dim parrafo As Paragraph
> For Each parrafo In ActiveDocument.Paragraphs
> With Selection
> With .Find
> .ClearFormatting
> .Text = "^t"
> .Forward = True
> .Wrap = wdFindContinue
> .Execute Replace:=wdReplaceOne
> End With
> .EndKey wdLine, wdExtend
> Select Case Len(.Text) - Len(Replace(.Text, ".", ""))
> Case 0
> .Range.Paragraphs.Style = "T�tulo 1"
> Case 1
> .Range.Paragraphs.Style = "T�tulo 2"
> Case 2
> .Range.Paragraphs.Style = "T�tulo 3"
> Case 3
> .Range.Paragraphs.Style = "T�tulo 4"
Pues entonces prueba mejor este codigo siguiente >>
'[]
Sub parrafos_tabulacion_estilos()
Dim x As Long
Selection.HomeKey wdStory
With Selection.Find
Do While .Execute _
(FindText:="^t", Forward:=True) = True
With Selection
.Delete
.EndKey wdLine, wdExtend
x = 0
x = Len(.Text) - Len(Replace(.Text, ".", ""))
Select Case x
Case 0
.Range.Paragraphs.Style = "T�tulo 1"
Case 1
.Range.Paragraphs.Style = "T�tulo 2"
Case 2
.Range.Paragraphs.Style = "T�tulo 3"
End Select
.Collapse wdCollapseEnd
End With: Loop: End With:End Sub
'[]
el otro codigo no es que vuelva a empezar sino que recorre todos los
parrafos en busca de la tabulacion y pasa por todos los parrafos o marcas de
parrafo y cuando termina su evalucion entonces se para :P
Prueba a ver y... Comentanos....!
MUCH�SIMAS GRACIAS POR TODO
"Monica May" <t...@NOSPAM.teladearana.es> escribi� en el mensaje
news:eXJZTrY...@TK2MSFTNGP04.phx.gbl...
>
> hola Chiri de nuevo,
>
> Pues entonces prueba mejor este codigo siguiente >>
>
> '[]
>
> Sub parrafos_tabulacion_estilos()
>
> Dim x As Long
> Selection.HomeKey wdStory
> With Selection.Find
> Do While .Execute _
> (FindText:="^t", Forward:=True) = True
> With Selection
> .Delete
> .EndKey wdLine, wdExtend
> x = 0
> x = Len(.Text) - Len(Replace(.Text, ".", ""))
> Select Case x
> Case 0
> .Range.Paragraphs.Style = "T�tulo 1"
> Case 1
> .Range.Paragraphs.Style = "T�tulo 2"
> Case 2
> .Range.Paragraphs.Style = "T�tulo 3"
Saludos
Monica