[Ayuda vb Excel] Agregar datos en celda sin cambiar colores

12/12/2003 - 18:52 por Nilo | Informe spam
Hola a todo el mundo,

Quizás alguien conoce algún truco para resolver un pequeño problema que
me tiene loco...

Se trata de que NO me cambie los colores de algunos datos al agregar
otros a esa celda. Me explico:

Tengo una celda donde voy añadiendo unas referencias: 01\A, 02\A, etc.
El problema viene porque cada una de las referencias puede tener un
color diferente (o no) y cuando añado una nueva referencia me cambia
todas las anteriores al color predeterminado de la celda sin respetar el
que encontró.

Utilizo el sencillo metodo de almacenar el contenido actual de la celda
en una variable para luego asignarla el valor de la variable + la nueva
referencia... algo asi...

Set loquehay = ActiveCell
ActiveCell.Value = loquehay + ", " + Me.Nueva_referencia

Pero no me respeta los colores que había...

¿Alguien sabe como evitarlo? ¿Es posible añadir contenido a una celda
sin borrar los datos que haya y sin pasar previamente a una variable su
contenido?

La unica forma que he encontrado que respete los colores es mediante un
PasteEspecial(PasteAll)... pero en este caso no encuentro la forma para
que me deje añadir a lo que pega mi nueva referencia...

Gracias de antemano.

Un saludo,
Nilo

Preguntas similare

Leer las respuestas

#1 Fernando Arroyo
12/12/2003 - 19:27 | Informe spam
Pienso que tienes que usar el método Characters de la celda. Por ejemplo, el siguiente ejemplo añadiría "cc" cada vez que se ejecutara a la celda A1 de Hoja1. Si cambias la propiedad ColorIndex de la fuente, verás que cada pareja de ces tiene un color diferente:


Sub prueba()
Dim rng As Range
Dim intPos As Integer

Set rng = Worksheets("Hoja1").Range("a1")
intPos = Len(rng) + 1
rng.Characters(intPos, 2).Text = "cc"
rng.Characters(intPos, 2).Font.ColorIndex = 2

Set rng = Nothing
End Sub


Sin ver el código completo de tu procedimiento no puedo ser más concreto, pero espero que este ejemplo te sirva de ayuda.
Un saludo.


Fernando Arroyo
MS MVP - Excel

"Nilo" escribió en el mensaje news:
Hola a todo el mundo,

Quizás alguien conoce algún truco para resolver un pequeño problema que
me tiene loco...

Se trata de que NO me cambie los colores de algunos datos al agregar
otros a esa celda. Me explico:

Tengo una celda donde voy añadiendo unas referencias: 01\A, 02\A, etc.
El problema viene porque cada una de las referencias puede tener un
color diferente (o no) y cuando añado una nueva referencia me cambia
todas las anteriores al color predeterminado de la celda sin respetar el
que encontró.

Utilizo el sencillo metodo de almacenar el contenido actual de la celda
en una variable para luego asignarla el valor de la variable + la nueva
referencia... algo asi...

Set loquehay = ActiveCell
ActiveCell.Value = loquehay + ", " + Me.Nueva_referencia

Pero no me respeta los colores que había...

¿Alguien sabe como evitarlo? ¿Es posible añadir contenido a una celda
sin borrar los datos que haya y sin pasar previamente a una variable su
contenido?

La unica forma que he encontrado que respete los colores es mediante un
PasteEspecial(PasteAll)... pero en este caso no encuentro la forma para
que me deje añadir a lo que pega mi nueva referencia...

Gracias de antemano.

Un saludo,
Nilo

Respuesta Responder a este mensaje
#2 Nilo
12/12/2003 - 20:32 | Informe spam
"Fernando Arroyo" wrote in news:O
$:

Sub prueba()
Dim rng As Range
Dim intPos As Integer

Set rng = Worksheets("Hoja1").Range("a1")
intPos = Len(rng) + 1
rng.Characters(intPos, 2).Text = "cc"
rng.Characters(intPos, 2).Font.ColorIndex = 2

Set rng = Nothing
End Sub




IM-PRESIONANTE :)) No tengo palabras... Sí señor :))

Tu rutina es magnifica y da justo en el clavo... casi ni he tenido que
tocarla. Llevaba horas dandole vueltas... Y es que, "el que sabe, sabe" ;)

Y ya puestos a abusar de ti ¿No sabras (seguro que sí) como hacer que una
Label de un formulario Excel parpadee ("blinkee")?

Gracias.
Un saludo
Respuesta Responder a este mensaje
#3 Fernando Arroyo
13/12/2003 - 12:13 | Informe spam
"Nilo" escribió en el mensaje news:
"Fernando Arroyo" wrote in news:O
$:

> Sub prueba()
> Dim rng As Range
> Dim intPos As Integer
>
> Set rng = Worksheets("Hoja1").Range("a1")
> intPos = Len(rng) + 1
> rng.Characters(intPos, 2).Text = "cc"
> rng.Characters(intPos, 2).Font.ColorIndex = 2
>
> Set rng = Nothing
> End Sub
>

IM-PRESIONANTE :)) No tengo palabras... Sí señor :))

Tu rutina es magnifica y da justo en el clavo... casi ni he tenido que
tocarla. Llevaba horas dandole vueltas... Y es que, "el que sabe, sabe" ;)




:-) Me alegra que te haya servido.

Y ya puestos a abusar de ti ¿No sabras (seguro que sí) como hacer que una
Label de un formulario Excel parpadee ("blinkee")?

Gracias.
Un saludo




No, lo siento. Nunca he hecho que una etiqueta en un formulario parpadee. Es posible hacerlo con una o varias celdas, usando el método OnTime, pero ignoro si será posible hacer lo mismo en un formulario. En cualquier caso, en principio no soy partidario de ello porque el código necesario para que funcionara OnTime quizás pudiera interferir de alguna forma con el código del formulario, suponiendo que OnTime funcione en formularios que, la verdad, no lo sé.
Un saludo.


Fernando Arroyo
MS MVP - Excel
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida