seleccionar línea por código vba

07/11/2009 - 14:15 por chiri13 | Informe spam
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

Preguntas similare

Leer las respuestas

#6 chiri13
12/11/2009 - 13:37 | Informe spam
Esto funciona pero sólo me sirve para Título1 puesto que no puedo
seleccionar el párrafo para averiguar cuantos puntos tiene y en función de
ello, poner un Título u otro

muchas gracias

"Monica May" escribió en el mensaje
news:e0GRg$
Mostrar la cita
#7 Monica May
12/11/2009 - 22:40 | Informe spam
holas de nuevo,


Mostrar la cita
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..!

Saludos
Monica



www.fermu.com
www.teladearana.es
#8 Monica May
12/11/2009 - 23:20 | Informe spam
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"
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
#9 chiri13
13/11/2009 - 12:39 | Informe spam
El problema está en que al quitar la siguiente línea

Mostrar la cita
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" escribió en el mensaje
news:%235BzSZ%
Mostrar la cita
#10 Monica May
15/11/2009 - 01:30 | Informe spam
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"
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!

Saludos
Monica


www.fermu.com
www.teladearana.es
Ads by Google
Search Busqueda sugerida