modificaciones en el texto de comentarios

25/04/2004 - 11:20 por Jesús Román | Informe spam
Hola, Buenos dias para todos!

Selection.Comment.Shape.TextFrame.Characters(5, 15).Font.Bold = True

La linea anterior me cambia a negrita los caracteres entre el 5 y 15 de un
comentario, la cuestion sería que en lugar de numerar los caracteres en
negrita lo hiciera por bloques de caracteres (palabras), pues tengo que
hacer cambios en muchos comentarios y puedo localizar con facilidad los
bloques ya que el numero de bloques es siempre el mismo, lo que no ocurre
con el número de caracteres.

Preguntas similare

Leer las respuestas

#1 Fernando Arroyo
25/04/2004 - 13:22 | Informe spam
Prueba con algo parecido a esto (estoy seguro de que tendrás que modificar el código, pero espero que al menos te sirva de ejemplo):

Type MiPos
inicio As Integer
fin As Integer
End Type

Function Posiciones(strTexto As String, numPalabra As Integer) As MiPos
Dim m_MiPos As MiPos
Dim mtrT As Variant, n As Integer, intPos As Integer

mtrT = Split(strTexto, " ")

For n = 0 To numPalabra - 2
intPos = intPos + Len(mtrT(n))
Next n

m_MiPos.inicio = intPos + numPalabra - 1
m_MiPos.fin = Len(mtrT(numPalabra - 1)) + 1

Posiciones = m_MiPos
End Function

Sub PonerEnNegritaUnaPalabra()
Dim m_MiPos As MiPos
Dim intQuéPalabra As Integer

With Worksheets("Hoja1").Range("A1").Comment.Shape.TextFrame 'Celda en que se encuentra el comentario
.Characters.Font.Bold = False 'Poner todo el texto del comentario en "no negrita"
intQuéPalabra = Application.InputBox("¿Qué número de palabra desea poner en negriga?" & vbNewLine & "(cero para salir)", Type:=1)
If intQuéPalabra = 0 Then Exit Sub
m_MiPos = Posiciones(.Characters.Text, intQuéPalabra)
.Characters(m_MiPos.inicio, m_MiPos.fin).Font.Bold = True
End With
End Sub


Para que funcione tal como está escrito, es necesario que en el libro haya una hoja llamada Hoja1 cuya celda A1 tenga un comentario.
Un saludo.


Fernando Arroyo
MS MVP - Excel


"Jesús Román" <CRISONIA3(texto inactivo)@terra.es> escribió en el mensaje news:opLic.4700418$
Hola, Buenos dias para todos!

Selection.Comment.Shape.TextFrame.Characters(5, 15).Font.Bold = True

La linea anterior me cambia a negrita los caracteres entre el 5 y 15 de un
comentario, la cuestion sería que en lugar de numerar los caracteres en
negrita lo hiciera por bloques de caracteres (palabras), pues tengo que
hacer cambios en muchos comentarios y puedo localizar con facilidad los
bloques ya que el numero de bloques es siempre el mismo, lo que no ocurre
con el número de caracteres.




Respuesta Responder a este mensaje
#2 Jesús Román
27/04/2004 - 23:34 | Informe spam
Hola Fernando Arroyo
Muchas gracias!!
Si, me ha servido... aunque con los cambios necesirios,
tal como tu intuias.
Por cierto, la macro es genial!!
saludos


Prueba con algo parecido a esto (estoy seguro de que


tendrás que modificar el código, pero espero que al menos
te sirva de ejemplo):

Type MiPos
inicio As Integer
fin As Integer
End Type

Function Posiciones(strTexto As String, numPalabra As


Integer) As MiPos
Dim m_MiPos As MiPos
Dim mtrT As Variant, n As Integer, intPos As Integer

mtrT = Split(strTexto, " ")

For n = 0 To numPalabra - 2
intPos = intPos + Len(mtrT(n))
Next n

m_MiPos.inicio = intPos + numPalabra - 1
m_MiPos.fin = Len(mtrT(numPalabra - 1)) + 1

Posiciones = m_MiPos
End Function

Sub PonerEnNegritaUnaPalabra()
Dim m_MiPos As MiPos
Dim intQuéPalabra As Integer

With Worksheets("Hoja1").Range


("A1").Comment.Shape.TextFrame 'Celda en que se encuentra
el comentario
.Characters.Font.Bold = False 'Poner todo el


texto del comentario en "no negrita"
intQuéPalabra = Application.InputBox("¿Qué


número de palabra desea poner en negriga?" & vbNewLine
& "(cero para salir)", Type:=1)
If intQuéPalabra = 0 Then Exit Sub
m_MiPos = Posiciones(.Characters.Text,


intQuéPalabra)
.Characters(m_MiPos.inicio,


m_MiPos.fin).Font.Bold = True
End With
End Sub


Para que funcione tal como está escrito, es necesario


que en el libro haya una hoja llamada Hoja1 cuya celda A1
tenga un comentario.
Un saludo.


Fernando Arroyo
MS MVP - Excel


"Jesús Román" <CRISONIA3(texto inactivo)@terra.es>


escribió en el mensaje news:opLic.4700418
$
Hola, Buenos dias para todos!

Selection.Comment.Shape.TextFrame.Characters(5,




15).Font.Bold = True

La linea anterior me cambia a negrita los caracteres




entre el 5 y 15 de un
comentario, la cuestion sería que en lugar de numerar




los caracteres en
negrita lo hiciera por bloques de caracteres




(palabras), pues tengo que
hacer cambios en muchos comentarios y puedo localizar




con facilidad los
bloques ya que el numero de bloques es siempre el




mismo, lo que no ocurre
con el número de caracteres.






.

Respuesta Responder a este mensaje
#3 Fernando Arroyo
29/04/2004 - 10:21 | Informe spam
"Jesús Román" escribió en el mensaje news:525801c42c9f$6abd0050$
Hola Fernando Arroyo
Muchas gracias!!



De nada :-)

Si, me ha servido... aunque con los cambios necesirios,
tal como tu intuias.
Por cierto, la macro es genial!!



Gracias, pero se puede mejorar un poco. Al revisar el código he visto que había tres líneas (dentro de la función) que no eran necesarias. El nuevo código es:


Type MiPos
inicio As Integer
fin As Integer
End Type

Function Posiciones(strTexto As String, numPalabra As Integer) As MiPos
Dim mtrT As Variant, n As Integer, intPos As Integer

mtrT = Split(strTexto, " ")

For n = 0 To numPalabra - 2
intPos = intPos + Len(mtrT(n))
Next n

Posiciones.inicio = intPos + numPalabra - 1
Posiciones.fin = Len(mtrT(numPalabra - 1)) + 1
End Function

Sub PonerEnNegritaUnaPalabra()
Dim m_MiPos As MiPos
Dim intQuéPalabra As Integer

With Worksheets("Hoja1").Range("A1").Comment.Shape.TextFrame 'Celda en que se encuentra el comentario
.Characters.Font.Bold = False 'Poner todo el texto del comentario en "no negrita"
intQuéPalabra = Application.InputBox("¿Qué número de palabra desea poner en negriga?" & vbNewLine & "(cero para salir)", Type:=1)
If intQuéPalabra = 0 Then Exit Sub
m_MiPos = Posiciones(.Characters.Text, intQuéPalabra)
.Characters(m_MiPos.inicio, m_MiPos.fin).Font.Bold = True
End With
End Sub


Un saludo.


Fernando Arroyo
MS MVP - Excel


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