formato condicional con vba

07/02/2007 - 21:59 por jpc2879 | Informe spam
Hola a todos!

he adaptado este codigo que encontre en otro post, para colorear el
texto contenido en las celdas "A1" y "A2" en el resto de la hoja.

Como podria hacerlo para que si introduzco 01/012007 en “A1” y
10/01/2007 en “B1”, se colorearan en la hoja

todas las fechas comprendidas entre el 01/01/2007 y el 10/01/2007?

He intentado lo siguiente:

Case Is = Range("A1:B1"): celda.Interior.ColorIndex = 4

pero no consigo que funcione

En cualquier caso, no puedo utilizar formato condicional como
alternativa, porque necesito más de 3 condiciones.

Gracias por adelantado, jpc



Private Sub Worksheet_Change(ByVal Target As Range)
Dim celda As Range
Target.Interior.ColorIndex = xlNone
On Error GoTo Salida
For Each celda In Target.SpecialCells(xlCellTypeConstants)
Select Case (celda)
Case Is = Range("A1"): celda.Interior.ColorIndex = 4
Case Is = Range("B1"): celda.Interior.ColorIndex = 4
Case Else: celda.Interior.ColorIndex = xlNone
End Select
Next celda
Salida:
End Sub

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
09/02/2007 - 04:37 | Informe spam
hola, !

he adaptado este codigo... para colorear el texto contenido en las celdas "A1" y "A2" en el resto de la hoja.
Como podria hacerlo para que si introduzco 01/012007 en “A1” y10/01/2007 en “B1”
se colorearan en la hoja todas las fechas comprendidas entre el 01/01/2007 y el 10/01/2007?
He intentado lo siguiente:
Case Is = Range("A1:B1"): celda.Interior.ColorIndex = 4
pero no consigo que funcione
En cualquier caso, no puedo utilizar formato condicional como alternativa, porque necesito mas de 3 condiciones.



segun el codigo que expones...
1) estas seguro/a que TODAS las celdas cuyo contenido sea 'constante' [xlCellTypeConstants]
-> DEBE ser 'afectada' por algun cambio de colores ???
[aunque... estas aplicandolo SOLO a las celdas modificadas, con el uso de "For Each celda In Target..."]

2) puedes comentar 'el resto' de las condiciones que te imposibilitan el uso de los formatos condicionales ?
[o si el caso es que efectivamente requieres formatos 'condicionales' para mas de 3 condiciones de formato]...
-> visita: -> http://www.xldynamic.com/source/xld...nload.html

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ el codigo expuesto __
Private Sub Worksheet_Change(ByVal Target As Range)
Dim celda As Range
Target.Interior.ColorIndex = xlNone
On Error GoTo Salida
For Each celda In Target.SpecialCells(xlCellTypeConstants)
Select Case (celda)
Case Is = Range("A1"): celda.Interior.ColorIndex = 4
Case Is = Range("B1"): celda.Interior.ColorIndex = 4
Case Else: celda.Interior.ColorIndex = xlNone
End Select
Next celda
Salida:
End Sub
Respuesta Responder a este mensaje
#2 jpc2879
09/02/2007 - 21:43 | Informe spam
lo que pretendo hacer es una hoja con un calendario, en la cual
diferentes compañeros iran tecleando sus peticiones de vacaciones por
meses (en este ejemplo tengo mas de 3 condiciones)
ej.

pedro del 04/03/2007 al 07/03/2007

miguel del 01/05/2007 al 07/05/2007
y del 10/05/2007 al 15/05/2007

luis del 01/01/2007 al 20/01/2007

jose del 08/12/2007 al 15/12/2007

cuando se tecleen las fechas, estas se colorean en el calendario de
un color diferente por cada compañero,

con el codigo actual, solo se colorea el 04/03/2007 y el 07/03/2007 en
el caso de pedro, pero no se colorea 05/03/2007, 06/03,2007 porque
no se como hacerle entender que quiero colorear ese rango de fechas

espero haberme explicado algo mejor :S

se que hay una especi de parche que soluciona eso, pero queria
conseguirlo con alguna macro o funcion de vba, sin tener que instalar
add-ons

gracias de nuevo, jpc

On Thu, 8 Feb 2007 21:37:01 -0600, "Héctor Miguel"
wrote:

hola, !

he adaptado este codigo... para colorear el texto contenido en las celdas "A1" y "A2" en el resto de la hoja.
Como podria hacerlo para que si introduzco 01/012007 en “A1” y10/01/2007 en “B1”
se colorearan en la hoja todas las fechas comprendidas entre el 01/01/2007 y el 10/01/2007?
He intentado lo siguiente:
Case Is = Range("A1:B1"): celda.Interior.ColorIndex = 4
pero no consigo que funcione
En cualquier caso, no puedo utilizar formato condicional como alternativa, porque necesito mas de 3 condiciones.



segun el codigo que expones...
1) estas seguro/a que TODAS las celdas cuyo contenido sea 'constante' [xlCellTypeConstants]
-> DEBE ser 'afectada' por algun cambio de colores ???
[aunque... estas aplicandolo SOLO a las celdas modificadas, con el uso de "For Each celda In Target..."]

2) puedes comentar 'el resto' de las condiciones que te imposibilitan el uso de los formatos condicionales ?
[o si el caso es que efectivamente requieres formatos 'condicionales' para mas de 3 condiciones de formato]...
-> visita: -> http://www.xldynamic.com/source/xld...nload.html

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ el codigo expuesto __
Private Sub Worksheet_Change(ByVal Target As Range)
Dim celda As Range
Target.Interior.ColorIndex = xlNone
On Error GoTo Salida
For Each celda In Target.SpecialCells(xlCellTypeConstants)
Select Case (celda)
Case Is = Range("A1"): celda.Interior.ColorIndex = 4
Case Is = Range("B1"): celda.Interior.ColorIndex = 4
Case Else: celda.Interior.ColorIndex = xlNone
End Select
Next celda
Salida:
End Sub



Respuesta Responder a este mensaje
#3 Héctor Miguel
10/02/2007 - 02:10 | Informe spam
hola, !

1) [hasta donde se]... no existe 'parche' alguno para solucionar la situacion que comentas
[que dicho sea de paso]... no es un error 'de programacion' como para necesitar ser corregido -?-

2) haria falta conocer 'donde' esta el calendario cuyas celdas debieran colorearse segun eleccion de vacacionistas -?-
[p.e.] en que celda de algun formato de calendario esta la fecha 04/03/2007 ? [y asi cada una de los dias en 'el calendario'] -?-

3) tambien seria bueno si expones que color corresponde a cada 'vacacionista' [y/o cuantos son en total] -?-

4) el evento '_change' [tal como lo usas] detecta solamente las celdas donde se cambian sus datos [por entrada directa]

5) [como ves]... es necesario que expongas algunos detalles adicionales
[no muchos... solo los que no se alcanzan a ver... desde este lado del mensaje] ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ la consulta original __
lo que pretendo hacer es una hoja con un calendario, en la cual... iran tecleando sus peticiones de vacaciones por meses
(en este ejemplo tengo mas de 3 condiciones) ej.
pedro del 04/03/2007 al 07/03/2007
miguel del 01/05/2007 al 07/05/2007
y del 10/05/2007 al 15/05/2007
luis del 01/01/2007 al 20/01/2007
jose del 08/12/2007 al 15/12/2007

cuando se tecleen las fechas, estas se colorean en el calendario de un color diferente por cada compa#ero,
con el codigo actual, solo se colorea el 04/03/2007 y el 07/03/2007 en el caso de pedro
pero no se colorea 05/03/2007, 06/03,2007 porque no se como hacerle entender que quiero colorear ese rango de fechas
espero haberme explicado algo mejor :S
se que hay una especie de parche que soluciona eso, pero queria conseguirlo con alguna macro o funcion de vba
sin tener que instalar add-ons
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida