Borrar contenido de una linea

4 envíos / 0 nuevos
Último envío
Jose Luis Casla...
Imagen de Jose Luis Casla Araiz
Offline
última acción: Hace 7 meses 4 semanas
Nivel 1 - 200 puntosNivel 2 - 500 puntos
alta: 11/05/2012 - 15:15
Puntos: 1335
Borrar contenido de una linea

Estoy tratando de automatizar un documento Word en el que están descritos los numeros de los autobuses de la empresa y el recorrido que hace cada uno de ellos.

Simplemente en la linea 5 de cada página está escrito el nombre del chofer para esta semana.

Quisiera poder cambiar el contenido de la linea 5 para sustituir el nombre del chofer de la semana pasada por el nombre del chofer actual.

La idea es que desde un UserForm me pregunte los nombres de los 5 choferes de cada semana y así poder ejecutar una macro que sustituya el chofer 1 en la linea 5 de la pagina 1, el chofer 2 en la linea 5 de la pagina 2, el chofer 3 en la linea 5 de la pagina 3, etc.

El userform... ningun problema... 

El macro que que pone el contenido de cada TextBox en la linea 5, tiene el problema de que no borra el contenido de la linea 5 y lo que hace es añadir el nombre actual al nombre que ya estaba en la misma linea. Pero quisiera poder borrar previamente el nombre del chofer de la semana anterior...

Tampoco resuelve el problema establecer Insertar-off porque si el nombre anterior era Antonio Hernandez y el actual es Pedro Diaz, quedan caracteres sin sustituir...

Asi que la pregunta concreta es: cómo puedo borrar el contenido de una linea? (para posteriormente poder escribir desde la macro el nuevo nombre...).

Saludos cordiales.

 

 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 día 8 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 7570
Una persona ve muy claro que

Una persona ve muy claro que está en la quinta línea, pero para Word esto no es tan evidente. Me explico:

Puede ser el quinto párrafo si cada párrafo es de sólo una línea

Los párrafos pueden tener saltos de línea, pero sin cambiar de párrafo (mayúsculas Intro).

Puede ser un párrafo muy largo que tiene más de cinco líneas

puede estar dentro de una tabla

puede ser una lista

qué pasa si añado texto antes?, ¿qué ocurre si reduzco los márgenes o los amplío...? ¿y si cambio el tamaño de la letra?

en Word todo se mueve y se repagina

Las líneas y los párrafos de Word no son algo tan fijo como puede ser la celda $B$3 en Excel. No es algo tan sencillo como la quinta línea

 

Voy a suponer que donde has dicho quinta línea has querido decir quinto párrafo, contando desde el principio del documento

Esto sustituye todo tu párrafo 5º

ThisDocument.Paragraphs(5).Range.Text = "hola" & vbCrLf

Al final añado una marca de párrafo con vbCrLf, para que no se te junte con el siguiente y siga siendo un párrafo

 

 

 

Data Tools Suite
datos y tablas con Excel

Jose Luis Casla...
Imagen de Jose Luis Casla Araiz
Offline
última acción: Hace 7 meses 4 semanas
Nivel 1 - 200 puntosNivel 2 - 500 puntos
alta: 11/05/2012 - 15:15
Puntos: 1335
Hola Paco:Gracias, una vez

Hola Paco:

Gracias, una vez mas por tu aportacion.

Me ha venido muy bien tu aclaracion respecto del comportamiento del Word en relacion a las lineas, que no es como el Excel en relacion a las celdas.

Efectivamente las lineas en Word, no son algo fijo... dependen de muchos factores, margenes, tipos de letra, etc. etc.

Personalmente yo vengo del mundo Excel y estos primeros pasos en el mundo Word, me tienen un poco desconcertado. Pero bueno, todo se andara.

Ya he resulto la situacion planteada y estoy enviando al foro, un pequeño fichero, con el resumen de los pasos realizados para cambiar la "linea" que mejor habría que decir, el párrafo.

La solución puede que sea un poco enrevesada... pero al final funciona.

En resumen, consiste en Seleccionar el parrafo y sustituirlo por el contenido de un TextBox de un UserForm.

Para situarme en el parrafo que me interesaba, lo he situado al final de cada hoja del documento, de tal manera que buscando el Salto de pagina, a continuacion subiera tres lineas para situarse en el parrafo que interesa.

Las lineas del macro que he utilizado son las siguientes:

    With Selection.Find

' busca el salto de página

        .Text = "^m"

        .Replacement.Text = ""

        .Forward = True

        .Wrap = wdFindContinue

 

    End With

    Selection.Find.Execute

' Cuando lo encuentra, se desplaza hacia arriga un par de párrafos

    Selection.MoveUp Unit:=wdLine, Count:=2

Una vez seleccionado el párrafo en cuestion, lo selelcciona,

    ActiveDocument.Paragraphs(ActiveDocument.Range(0, _

    Selection.End).Paragraphs.Count).Range.Select

y lo sustituye por el contenido del TextBox del formulario.

        Selection.TypeText UserForm2.TextBox1

He puesto un For... next (que lo pienso sustituir por un Do Case... para actuar en consecuencia con cada pagina...

Lo he incluido como fichero adjunto, por si a alguien le puede servir en situaciones parecidas... o sencillamente para sugerirme mejoras al respecto, que todo puede ayudar...

Gracias amigo paco por tu aporte, tu "saber estar" y porque con todo ello animas a que vayamos haciendo el camino...

Saludos cordiales.

AdjuntoTamaño
Microsoft Office document icon choferes.doc48.5 KB
pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 día 8 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 7570
Gracias a ti por compartir tu

Gracias a ti por compartir tu solución, seguro que será de utilidad en el futuro a alguien con el mismo problema.

 

Data Tools Suite
datos y tablas con Excel