dOS COLORES DE TEXTO EN CELDA CON FORMULA

25/10/2005 - 04:20 por lomboc | Informe spam
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.

Preguntas similare

Leer las respuestas

#11 lomboc
27/10/2005 - 03:04 | Informe spam
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 !

> 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.
Respuesta Responder a este mensaje
#12 Héctor Miguel
27/10/2005 - 04:34 | Informe spam
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

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#13 lomboc
27/10/2005 - 12:15 | Informe spam
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 wrote:

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

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#14 Héctor Miguel
28/10/2005 - 02:53 | Informe spam
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 ?
Respuesta Responder a este mensaje
#15 lomboc
28/10/2005 - 09:49 | Informe spam
HOLA HECTOR, solo darte las gracias de nuevo.
Ivan.

Héctor Miguel wrote:

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 ?
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida