Imprimir página | Cerrar ventana

Concatenar y usar formato

Impreso de: Foro de Access y VBA
Categoría: Otros de Microsoft: Windows y Office
Nombre del foro: Excel
Descripción del foro: Foro de Excel y VBA de Excel
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=86107
Fecha de impresión: 22/Septiembre/2021 a las 09:42


Tema: Concatenar y usar formato
Publicado por: Gladiador
Asunto: Concatenar y usar formato
Fecha de publicación: 09/Septiembre/2021 a las 18:38
Hola, tengo un cuestionario para ser respondido con preguntas de selección múltiple (para ello tengo un celda con validación)

Ejemplo:
En la celda A5 tengo:
América fue descubierta por __________ en 1.492

En esa celda tengo la siguiente fórmula
="América fue descubierta por "&if(isblank(D5);"____________";D5)&" en 1.492"

El alumno debe seleccionar de la celda D5 
   Américo Vespucio
   Cristóbal Colón
   Hernán Cortez

Una vez hecha la selección quisiera que en la celda A5 aparezca

     América fue descubierta por Cristóbal Colón en 1.492

Cualquiera que sea la elección, esta debe aparecer en Negrilla y/o subrayada

Es posible?

Gracias

Gladiador



Respuestas:
Publicado por: xavi
Fecha de publicación: 09/Septiembre/2021 a las 18:53
Hasta dónde a mi me consta, la aplicación de distintos formatos en una misma celda sólo se puede utilizar cuando el contenido de la celda es un literal (y, si es un número, el formato de la celda debe ser "texto"). No es posible utilizarlo cuando se trata de una fórmula o función.

Un saludo



-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: xavi
Fecha de publicación: 09/Septiembre/2021 a las 19:16
La opción pasaría por utilizar VBA de forma que manejaras el cambio de datos de la celda D5 y escribieras el resultado en la celda A5. En ese caso si que puede, por VBA, "trocear" el formateo.

En el evento Worksheet_Change, y controlando el Target adecuado), estableces el valor que se mostrará en la celda A5:
--> si D5 está vacío, muestras "América fue descubierta por ____ en 1492"
--> si D5 no está vacío, concatenas el resultado y lo muestras --> "América fue descubierta por Cristobal Colon en 1492" y, a continuación, formateas:
' El primer tramo (América fue descubierta por)
Range("A5").Characters(Start:=1, Length:=28).Font.FontStyle = "Normal"
Range("A5").Characters(Start:=1, Length:=28).Underline = xlUnderlineStyleNone
' El segundo tramo
Range("A5").Characters(Start:=29, Length:=15).Font.FontStyle = "Negrita"
Range("A5").Characters(Start:=29, Length:=15).Underline = xlUnderlineStyleSingle
' El último tramo
Range("A5").Characters(Start:=44, Length:=8).Font.FontStyle = "Normal"
Range("A5").Characters(Start:=44, Length:=8).Underline = xlUnderlineStyleNone

Los Start y Length deberás calcularlos en función del texto seleccionado.

Por cierto, si no me equivoco, es Hernán Cortés, con "s" final.

Un saludo



-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web



Imprimir página | Cerrar ventana