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

#1 Monica May
09/11/2009 - 00:56 | Informe spam
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


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


Respuesta Responder a este mensaje
#2 chiri13
09/11/2009 - 09:38 | Informe spam
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" escribió en el mensaje
news:Oq%
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


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






Respuesta Responder a este mensaje
#3 Monica May
09/11/2009 - 23:58 | Informe spam
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" escribió en el mensaje
news:Oq%
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


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










Respuesta Responder a este mensaje
#4 chiri13
10/11/2009 - 09:27 | Informe spam
no, el texto en este momento no tiene formato

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" escribió en el mensaje
news:
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" escribió en el mensaje
news:Oq%
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


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













Respuesta Responder a este mensaje
#5 Monica May
11/11/2009 - 23:39 | Informe spam
Holas de nuevo,

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
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida