Como insertar paréntesis ")" cuando estoy escribiendo en una celda desde VBA.

Esto es lo que quiero que haga la macro:

1° La celda "A1" tiene el texto: "abcd"
2° Luego entro a editar la celda y ubico el cursor entre b y c: "ab|cd"
3° Presiono la macro y escribe un paréntesis donde está el cursor, quedando de la siguiente manera: "ab(cd"
La macro debe colocar el paréntesis en el lugar donde está ubicado el CURSOR y no en una ubicación pre determinada.
Ejemplo:
Texto:"dfsdfs"
coloco cursor: "dfsdf|s"
Presiono macro: "dfsdf(s"

1

1 respuesta

Respuesta
1

No se pueden ejecutar macros mientras se está editando una celda, es más ni siquiera puedes cerrar Excel, ni abrir otro archivo hasta terminar de editar una celda. Limitaciones Excel.

Bueno gracias, solo eso quería saber.

Pero, como es que se puede poner en negrita, cursiva o subrayado en plena edición.

Solo quisiera que me digan si tiene algo que ver con el uso del API de Windows, porque he visto que puede hacerse muchas cosas con ello.

Puedes poner en negritas una celda con el icono N de la cinta de Excel (o B en el caso de Excel en ingles). Podrías tambien hacerlo con Ctrl+N (o Control + B si fuera en ingles).

Con macro

Range("B3"). Font.Bold=True pone en negritas la celda B3

Si estas escribiendo un texto (NO FÓRMULA) en una puedes seleccionar algunas letras en la propia edición y poner en negritas solo eso de la manera indicada anteriormente. Obviamente este cambio durante de la edición de una celda, no puede ser automatizado, pues tal como te dije, no hay como ejecutar una ejecutar una macro en ese momento.

Lo que mencionas en los tres primeros párrafos es para cambiar la propiedad de toda la cadena de texto.

Pero lo que menciono, es que la negrita o cursiva se puede poner a un texto parcial de una cadena desde Excel, y eso lo puede hacer Excel porque detecta la posición del cursor y del texto señalado.

Pero bueno, creo que la información que busco no está disponible en ningún lugar.

Y grcias por responder amigo, valoro tu pronta respuesta.

Te lo dije antes...

Ingresa a la celda, y selecciona en la barra de fórmulas la porción de texto que te interesa...

Con Ctrl+N (o Ctrl + B en Excel en ingles) se convertirá solo "eso" en negritas...

Solo lo puedes hacer en celdas con textos... no numéricas ni de fórmulas.

Usando macros si se puede... alguna vez lo he hecho... pero es un poco complicado, y Excel no lo maneja muy bien, lo vuelve un poco pesado y cuando lo intenté hacer para algunos millares de celdas, se me colgó la máquina...

El truco es el siguiente.

Prende la grabadora de macros... y haz la colocación de negritas como te indique en alguna celda donde haya un texto... acepta con Enter y para la grabadora..

Verás alli que se crea un código... con mucho codigo innecesario, pero el que te sirve es.

ActiveCell.Characters(Start:=26, Length:=11).Font

entonces modifica ese codigo... debe ser algo asi

........(aqui pon la referencia a la celda real).....Characters(Start:=x, Length:=y).Font.Bold = True

x es la posición donde arranca tu texto  (si quisieras que fuera un parentesis)

x=Instr(1,celda,"("

Si y fuera la cantidad de caracteres (podria ser hasta donde termina un parentesis)

y=Instr(1,celda,")" - x + 1

Esta dos instruccciones deberían estar antes de la anterior

Me olvide de escribir unos paréntesis

x=Instr(1,celda,"(")

y=Instr(1,celda,")") - x + 1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas