Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

dOS COLORES DE TEXTO EN CELDA CON FORMULA

4,338 views
Skip to first unread message

IVAN

unread,
Oct 24, 2005, 10:20:29 PM10/24/05
to
Hola buenas, quisiera saber si existe la posibilidad de que una formula (
en este caso concatenar tre celdas de un mismo registro ) en la celda de
destino el mismo color y formato que tiene el texto en las celdas de
origen aunque este sea diferente.

Héctor Miguel

unread,
Oct 25, 2005, 3:43:02 AM10/25/05
to
hola, IVAN !

> ... posibilidad de que una formula (en este caso concatenar tre celdas de un mismo registro)
> en la celda de destino el mismo color y formato que tiene el texto en las celdas de origen [...]

-> [hasta donde se] no hay ninguna funcion que utilizada en formulas en la hoja de calculo...
'traslade' los formatos de las celdas 'de origen' :-(
ni siquiera aplicar o modificar otras propiedades en las celdas [como colores, fuentes, bordes, etc.] :-(

[a menos que te sirviera usar macros]... -?-

saludos,
hector.


IVAN

unread,
Oct 25, 2005, 4:25:01 AM10/25/05
to
Héctor Miguel wrote:

> hola, IVAN !

> saludos,
> hector.
Muchas gracias, Hector. Supongo que tendre que intentar aprender algo de
VB, aunque solo sea por cabezoneria.

Carlos Durán Urenda

unread,
Oct 25, 2005, 10:53:52 AM10/25/05
to
Hola

Dudo mucho que... incluso con programación consigas aplicar formatos
multiples dentro de una celda.

En todo caso, si lo que te interesa es la presentación, podrias utilizar
Word con cartas modelo, tomando como origen la hoja de excel y presentandola
en word, aplicando todos los formatos que deseas, de esta manera no
necesitarias meterte a programar... algo que de todas formas no te llevará
al objetivo deseado

Espero sea de utilidad

Saludos
Carlos Durán


"Héctor Miguel" <NOhemio...@PLShotmail.com> escribió en el mensaje
news:%23KJy8eT...@tk2msftngp13.phx.gbl...

Héctor Miguel

unread,
Oct 25, 2005, 1:26:26 PM10/25/05
to
hola, IVAN !

> ... Supongo que tendre que intentar aprender algo de VB, aunque solo sea por cabezoneria.

no comentas para que o por que necesitas ese tipo de concatenacion que incluya los formatos 'originales' -?-
[en via de mientras]... haz una prueba con la siguiente macro... suponiendo que...
-> en 'D2' necesitas concatenar 'A2' - 'B2' - 'C2'' intercalando un espacio entre cada una...

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
=== en un modulo de codigo 'normal' ===
Sub ConcatenarConFormato()
[d2] = [a2] & " " & [b2] & " " & [c2]
With [d2]
With .Characters(1, Len([a2])).Font
.ColorIndex = [a2].Font.ColorIndex
.Bold = [a2].Font.Bold
.Italic = [a2].Font.Italic
.Name = [a2].Font.Name
.Size = [a2].Font.Size
.Underline = [a2].Font.Underline
End With
With .Characters(Len([a2]) + 2, Len([b2])).Font
.ColorIndex = [b2].Font.ColorIndex
.Bold = [b2].Font.Bold
.Italic = [b2].Font.Italic
.Name = [b2].Font.Name
.Size = [b2].Font.Size
.Underline = [b2].Font.Underline
End With
With .Characters(Len([a2] & [b2]) + 3, Len([c2])).Font
.ColorIndex = [c2].Font.ColorIndex
.Bold = [c2].Font.Bold
.Italic = [c2].Font.Italic
.Name = [c2].Font.Name
.Size = [c2].Font.Size
.Underline = [c2].Font.Underline
End With
End With
End Sub


IVAN

unread,
Oct 25, 2005, 7:52:06 PM10/25/05
to
Héctor Miguel wrote:Hola de nuevo y muchas gracias por vuestras
respuestas, aunque no he tenido tiempo de intentar aplicarlas.
En cualquier caso os explico un poco de que va esto, aunque quizás os
parezca un poco ridículo.
Se trata de un inventario impreso para ir dando de baja artículos
manualmente entre recepción y recepción de pedidos. Ya se que existen
miles de programas específicos (de hecho estoy ahora con ello y
probablemente ya esta formula no me sirva para nada, pero me he picado),
que he usado de manera muy útil durante años, pero aplicando el formato
final manualmente.

Se trata de insertar palotes (ies mayúsculas en negrita) con dos espacios
en una celda en función de:

COLUMNA A= STOK EN TIENDA color rojo Ej: A1= I I I

COLUMNA B= STOK EN ALMACEN color oro Ej: B1= I

COLUMNA C= ART. RECIBIDOS ULTIMO PEDIDO color oro Ej: C1= I I I I

COLUMNA D= TOTAL STOK Ej: D1= I I I I I I I I

Las columnas A, B y C se pueden eliminar usando directamente los valores
de origen ( vienen de usar la función REPETIR( I ; celda con valor de
tienda, alm., etc.)) y el resultado en D1 es igual, pero pensé que así
quizás seria más fácil practicar para conseguir el mismo formato.

Bueno, disculpad este rollo, y vuelvo a agradeceros vuestra atención. En
cuanto pueda ( y me atreva) intentare la macro, pues seria la primera.

Hasta pronto
IVAN

Carlos Durán Urenda

unread,
Oct 26, 2005, 11:41:51 AM10/26/05
to
Increible

no pense que se pudiera :-))

"Héctor Miguel" <NOhemio...@PLShotmail.com> escribió en el mensaje

news:%239z49kY...@TK2MSFTNGP12.phx.gbl...

Héctor Miguel

unread,
Oct 26, 2005, 11:47:28 AM10/26/05
to
hola, Carlos !

> no pense que se pudiera :-))

[hasta ahora]... pocas cosas he visto que 'no se puedan hacer', con el 'binomio' excel-vba :D
como... uuhmmm... -?- [no recuerdo, pero creo que no lo han preguntado] :))

saludos,
hector.


Carlos

unread,
Oct 26, 2005, 3:21:34 PM10/26/05
to
Si entiendo bien tu código, me parece que los formatos hay que colocarlos
"manualmente" en el código.

Si es así, sería deseable que existiese otro código donde tome
automáticamente los formatos de las celdas.

Si no es así, entonces no tomen en cuenta este mensaje

Carlos


Héctor Miguel

unread,
Oct 26, 2005, 4:14:15 PM10/26/05
to
hola, Carlos !

> Si entiendo bien... me parece que los formatos hay que colocarlos "manualmente" en el codigo.
> Si es asi, seria deseable que existiese otro codigo donde tome automaticamente los formatos de las celdas.
> Si no es asi, entonces no tomen en cuenta este mensaje.

1) puesto que lo has preguntdo/comentado/... tengo que asumir que no lo has probado :))
2) si lo analizas de nuevo, 'veras' que los formatos no se ponen 'manualmente' en el codigo...
lo que si es 'necesario' es 'averiguar' los formatos que tienen las celdas 'de origen'...
[para poderlos 'trasladar' a los caracteres correspondientes en la celda 'concatenada'] :))

[p.e.] escribe tres palabras en las celdas A2, B2 y C2
aplica formatos diferentes al texto en cada celda [fuente, color, negrita, cursiva, tama#o]
ejecuta la macro y observa 'que pasa' en la celda D2 ;)

saludos,
hector.


IVAN

unread,
Oct 26, 2005, 9:02:34 PM10/26/05
to
Héctor Miguel wrote:
Hola Hector:
He probado la macro y efectivamente funciona. De hecho ni siquiera habia
nada enese momento en las celdas pues el valor en las celdas de origen era
0, pero al meter cantidades y ejecutar la macro ha funcionado.

El problema es que elimina la formula y no he podido arrastrarla al rango
y me he atrevido a modificar la macro cambiando a1 x a1:a70, b1 x b1:b70,
etc, pero me da el error: "Se ha producido el error 13. No coinciden los
tipos.

No se si me habre explicado bien, en cualquier caso parece que puede
funcionar y de nuevo gracias.

IVAN

unread,
Oct 26, 2005, 9:04:44 PM10/26/05
to
Héctor Miguel wrote:
Hola Hector:
He probado la macro y efectivamente funciona. De hecho ni siquiera habia
nada enese momento en las celdas pues el valor en las celdas de origen era
0, pero al meter cantidades y ejecutar la macro ha funcionado.

El problema es que elimina la formula y no he podido arrastrarla al rango
y me he atrevido a modificar la macro cambiando a1 x a1:a70, b1 x b1:b70,
etc, pero me da el error: "Se ha producido el error 13. No coinciden los
tipos.

No se si me habre explicado bien, en cualquier caso parece que puede
funcionar y de nuevo gracias.

> hola, Carlos !

Héctor Miguel

unread,
Oct 26, 2005, 10:34:32 PM10/26/05
to
hola, IVAN [+ Carlos?] !

> ... al meter cantidades y ejecutar la macro ha funcionado.


> El problema es que elimina la formula y no he podido arrastrarla al rango

____
para esta parte de que se elimina la formula... [me temo que] habria que 'remitirnos' a la prmer respuesta...


-> [hasta donde se] no hay ninguna funcion que utilizada en formulas en la hoja de calculo...
'traslade' los formatos de las celdas 'de origen' :-(
ni siquiera aplicar o modificar otras propiedades en las celdas [como colores, fuentes, bordes, etc.] :-(
[a menos que te sirviera usar macros]... -?-

> ... modificar la macro cambiando a1 x a1:a70, b1 x b1:b70, etc, pero... "Se ha producido el error 13. No coinciden los tipos.
> No se si me habre explicado bien, en cualquier caso parece que puede funcionar [...]
____
si necesitas que la macro [aunque elimine las formulas] se aplique a un rango de varias celdas...
se necesita utilizar variables de rango mas 'flexibles', notacion 'normal' como cells/offset/... en vez de 'abreviada' como [a2]
suponiendo que el rango donde se va a depositar la concatenacion con todo y formatos es: 'D1:D10'... prueba con...
=== modificaciones a la macro de la propueta anterior ===
Sub ConcatenarVariasCeldasConFormato()
Application.ScreenUpdating = False
Dim Celda As Range
For Each Celda In Range("d1:d10")
With Celda
.Value = .Offset(, -3) & " " & .Offset(, -2) & " " & .Offset(, -1)
With .Characters(1, Len(.Offset(, -3))).Font
.ColorIndex = Celda.Offset(, -3).Font.ColorIndex
.Bold = Celda.Offset(, -3).Font.Bold
.Italic = Celda.Offset(, -3).Font.Italic
.Name = Celda.Offset(, -3).Font.Name
.Size = Celda.Offset(, -3).Font.Size
.Underline = Celda.Offset(, -3).Font.Underline
End With
With .Characters(Len(.Offset(, -3)) + 2, Len(.Offset(, -2))).Font
.ColorIndex = Celda.Offset(, -2).Font.ColorIndex
.Bold = Celda.Offset(, -2).Font.Bold
.Italic = Celda.Offset(, -2).Font.Italic
.Name = Celda.Offset(, -2).Font.Name
.Size = Celda.Offset(, -2).Font.Size
.Underline = Celda.Offset(, -2).Font.Underline
End With
With .Characters(Len(.Offset(, -3) & .Offset(, -2)) + 3, Len(.Offset(, -1))).Font
.ColorIndex = Celda.Offset(, -1).Font.ColorIndex
.Bold = Celda.Offset(, -1).Font.Bold
.Italic = Celda.Offset(, -1).Font.Italic
.Name = Celda.Offset(, -1).Font.Name
.Size = Celda.Offset(, -1).Font.Size
.Underline = Celda.Offset(, -1).Font.Underline
End With
End With
Next
End Sub

IVAN

unread,
Oct 27, 2005, 6:15:36 AM10/27/05
to
Hola Hector, funciona perfectamente para el rango. Aunque sea un pesado
gracias de nuevo. Y ya para abusar del todo y para que veas mi ignorancia,
ahora no me deja volver a ejecutar la macro al volver al archivo porque me
dice que no esta firmada dig.. Y creo que para acabar, ¿como puedo tener
la macro disponible para cualquier libro?
Gracias por anticipado y hasta pronto.

Héctor Miguel

unread,
Oct 27, 2005, 8:53:17 PM10/27/05
to
hola, IVAN !

> ... funciona... para el rango
> ... ahora no me deja volver a ejecutar la macro al volver al archivo porque me dice que no esta firmada dig.
> ... para acabar, ¿como puedo tener la macro disponible para cualquier libro?

1) el asunto de que las macros no se ejecutan si no estan firmadas digitalmente...
revisa en las opciones de seguridad en macros... -> tienes un nivel alto :-(
las puedes ejecutar cuando las estas 'creando' pero una vez re-abierto el libro... :-(

2) con relacion a tener la macro disponible para cualquier libro...
te paso informacion al final del presente ;)

si cualquier duda... comentas?
saludos,
hector.
=====
para que un procedimiento [sub o funcion] este disponible para cualquier libro [sin tener que copiarla a cada libro]
es necesario que el codigo este en el libro de macros 'Personal.xls' [o en algun complemento o... 'Add-In']
en cualquier caso [personal o add-in]... 'tendras que cargar' con el archivo a otra/s pc/s que 'usen' la/s macro/s
de otra manera [NO 'presente' el archvo CON el/los procedimiento/s sub o funcion] NO seran reconocidas por excel

con relacion al libro de macros personales [Personal.xls]...
1.- su objetivo es que todos sus procedimientos esten disponibles para todos los libros [durante la sesion]
[a menos que los declares como 'Private' o en el modulo que los contiene pongas la declaracion 'Option Private Module']
2.- requisito INDISPENSABLE es que LA VENTANA del archivo este oculta
-> NO confundir con el atributo oculto de un archivo en el sistema operativo <-
3.- [seguramente] perderas la presentacion de un libro en blanco al 'arrancar' [solamente] excel
4.- si lo tienes que trasladar/copiar A OTRAS pc's... PREGUNTA PRIMERO si el usuario de la pc usa 'su' personal.xls

si no has generado tu libro de macros personales... lo puedes crear [p.e. la forma mas simple es:]
generando una [nueva?] macro ... -> herramientas -> macro -> grabar nueva macro... <-
y en en las opciones de la macro -> Guardar macro en: Libro de macros personal <-
la aplicacion [excel] se encargara de grabarlo en el directorio de inicio.
editas [o borras... o sustituyes] la macro grabada y pones ahi el codigo del procedimiento [sub o funcion]
[o vas agregando los que consideres 'de uso comun' o frecuente]

5.- se prefieres la opcion de complementos [o add-in]... comentas ?


Ivan

unread,
Oct 28, 2005, 3:49:36 AM10/28/05
to
HOLA HECTOR, solo darte las gracias de nuevo.
Ivan.

liherm...@uc.cl

unread,
Jun 12, 2019, 4:33:13 PM6/12/19
to
Hola, buenas tardes, quisiera saber como poder eliminar los espacios entre datos al momento de concatenar con la macro.
ya que después esos valores los quiero graficar en la misma celda.
Saludos

andres...@pucp.pe

unread,
May 13, 2020, 1:45:51 PM5/13/20
to
Hola. ¿Hay forma de hacer lo solicitado sin VBA?
Message has been deleted
0 new messages