Separar bookmark y añadirlo en listbox, creando un menu multiopción

30/03/2007 - 12:43 por riderbcn | Informe spam
Buenas

Dese dotar de una funcionalidad a un userform.

onsiste en recuperar unas determinadas lineas de texto de un bookmark,
agregarlas a un listbox y seleccionar una como opción, la cual quiero
que se quede en el contenido del bookmark, desechando las otrar


De momento recupero y agrego el texto, pero al particionarlo con
split, me queda todo en una linea si intento separar con retornos de
carro (Vbcrlf) y me aparece un carácter especial que no sé eliminar.¶

Si cambio el carácter separador por uno de texto como el punto, la
opcón funciona correctamente, pero en el list box aparece el carácter
¶.

Si en split utilizo ese carácter como separador, no funciona.

De este modo podemos hacer textos con opciones seleccionables tan solo
marcando todas las opciones denro de un bookmark y cargandolas en el
listbox. Es más rápido que cargar y diseñar options buttons. Si a
alguien se le ocurre otra manera.. pues bienvenida sea.

Public Sub Mostraropcion(resmarcador As String)
'Array dinámico para almacenar las lineas mediante Split
Dim a() As String
Dim i As Integer

a = Split(ActiveDocument.Bookmarks(resmarcador).Range, ".") ' Aqui
cambiando el punto por VBclrf, vbKeyReturn no funcionan.

'Recorremos el arreglo y vamos insertando los items en el ListBox
For i = LBound(a) To UBound(a)
UserForm1.ListBox1.AddItem a(i)
Next
InformeAuditoria.Hide
ActiveDocument.Bookmarks(resmarcador).Select
UserForm1.Show
ActiveDocument.Bookmarks(resmarcador).Range.Text UserForm1.ListBox1.Value ' cargo el valor
End Sub

En el userform solo hay un control listbox y un boton para aceptar,
que oculta el formulario (con unload, no devuelvo el valor
seleccionado del listbox).

De momento sólo con conseguir quitar el caracter ¶ ya estará perfecto.

Preguntas similare

Leer las respuestas

#1 Tux
01/04/2007 - 01:22 | Informe spam
riderbcn escribió:
Buenas

Dese dotar de una funcionalidad a un userform.

onsiste en recuperar unas determinadas lineas de texto de un bookmark,
agregarlas a un listbox y seleccionar una como opción, la cual quiero
que se quede en el contenido del bookmark, desechando las otrar
..




Buenas Javier :-)

Pues bien despues de darle vueltas y mas vueltas con el codigo y con el
tema de la dichosa marquita de parrafo [¶ ], disfrutando en todo
momento del proceso eso si eh? ;-) , pues desde que mi tostadora ha
puesto el play hata que he cantado Bingo pues ufhhhhhh! pero.

sisisiisisissiisisis! ya se porque, ya se porque y su solucion :-)
sisiisisis!, perooooooooo ahora me voy a dormir jajajajajaj! asi que lo
contare mañana, veras que es nada una pequeña cosilla de nada :-)
perooooo ya comento mañana :-D !!!


Muy Buenas noches ;-)!!

Saludos
Monica



Estado: A la Espera By Fermu

Tic-Tac-Tic-Tac...

Now We are free [Enya]

www.fermu.com
Respuesta Responder a este mensaje
#2 Tux
02/04/2007 - 10:38 | Informe spam
riderbcn escribió:
Buenas

Dese dotar de una funcionalidad a un userform.

Consiste en recuperar unas determinadas lineas de texto de un bookmark,
agregarlas a un listbox y seleccionar una como opción, la cual quiero
que se quede en el contenido del bookmark, desechando las otras ..





Hola Rider :-)

Bien te explico, resulta que primero tuve que reproducir esa marca de
agua ya que solo añadia marcadores de una sola linea y claro no salia
marca :-S , esa marca es la marca de Parrafo que se inserta en el
documento cuando le damos a la tecla Intro [retorno de carro], si vamos
escribiendo una linea y llegamos al final de esta automaticamente lo que
no nos ha cabido en la primera linea, pues pasa sola a la segunda sin
darle al intro, por lo tanto no crea marca de parrafo [ solo cuando le
damos al intro ], para ver las marcas de parrafo de un documento, [ ¶ ]o
bien , se encuentra esta tecla en la barra Estandar o bien es ir menu
herramientas > opciones > pestaña ver > y en donde dice Marcas de
formato, click en Marcas de parrafo .

LUego cuando pense en la marca de parrafo entonces ya pude reproducir el
, problema [si hubiera sabido mas del tema hubiera visto antes esto,
pero como hasta donde llego, llego dijo aquel de villadiego, pues eso :( ]

Bueno pues sabiendo que esas marcas de parrafo son retornos de carro
pues nuestro codigo quedaria asi:

Por lo tanto a la funcion [ Split ] le hemos de dar el delimitador o
aplicar una costante de [ Retorno de carro ( vbCr ) o su equivalente (
Chr(13) ] y no un [ retorno de carro + salto de linea (vbCrLf) ] con un
retorno de carro seria suficiente ya que la misma funcion nos divide las
lineas del marcador quedandonos ahora asi :

'-

Dim a() As String
Dim i As Integer
Dim CuerpoM As String

CuerpoM = ActiveDocument.Bookmarks(resmarcador).Range

a = Split(CuerpoM, vbCr)

For i = LBound(a) To UBound(a)
UserForm1.ListBox1.AddItem a(i)
Next

'-

Yo he declrado otra variable llamada CuerpoM (cuerpo del marcador ) y la
he sacado de la funcion Split puesto que no se porque si introducia los
parametros de lo que he declarado en variable CuerpoM pues me daba a
veces error :( solucion lo que he hecho ahi arriba y funciona suave :)

Bien luego como ya estaba metida con esto pues cree un boton nuevo, esto
ya como parte para mi saber dije voy a crear un boton que me liste todos
los marcadores que tenga en el documento quedando asi:

'-

Private Sub CommandButton1_Click()

Dim marcadores As Bookmark
Dim Textmarcador() As String
Dim i As Integer
ListBox1.Clear

If Documents.Count > 0 Then
For Each marcadores In ActiveDocument.Bookmarks

Textmarcador = Split(marcadores.Range, vbCr)
For i = LBound(Textmarcador) To UBound(Textmarcador)
UserForm1.ListBox1.AddItem Textmarcador(i)
Next
Next marcadores
End If

End Sub
'-

Y eso es mas o menos lo que hice :-)

Bueno comentas ok? :-) , ya te mando mail tambien eh? :)

Saludos
Monica


Estado: A la Espera By Fermu

Tic-Tac-Tic-Tac...

Now We are free [Enya]

www.fermu.com
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida