contar celdas que tienen sus bordes marcados como una X

19/05/2007 - 22:28 por MyVi | Informe spam
Hola grupo.

LLevo un rato mirando a ver si esto ya lo ha preguntado antes alguien,
pero no lo encuentro.

A ver si alguno de vosotros sabria cómo hacerlo.

Muchas gracias de antemano.

Tengo una columna: range(B10:B20) donde necesitaría que aquellas
celdas que tengan sus bordes marcados de una forma concreta (en este
caso seria como una "X") se cuenten.

Es decir que si de todas las celdas que hay en dicha columna, hay 2
que tienen sus bordes como tachados (espero que esto se entienda) pues
que me los cuente y en otra celda me aparezca el resultado = 2.

El caso es que tengo un calendario. Con un doble clic en un dia del
año (en dicha celda) se marca dicha celda con los bordes inclinado
derecho e izquierdo. Pero entonces necesitaria poder contar que he
marcado dicho dia.
Visualmente en el calendario puedo seleccionar tantos dias como
quiera, pero necesito un contador.

He tratado de hacerlo con "contar.si" pero no veo cómo puedo hacerlo
para que entienda que cuente si la celda tiene esos 2 bordes internos
marcados. Tampoco veo otra forma de poderlo hacer (como siempre ya me
estoy metiendo en camisas de once baras! Esto de no saber programación
no me ayuda demasiado).

¿Alguna idea?

Gracias de nuevo.

Myvic

Preguntas similare

Leer las respuestas

#6 MyVi
20/05/2007 - 00:09 | Informe spam
Ah! ahi esta. Por cierto, necesito que me cuente la celda que tiene el
xlDiagonalUP y el xlDiagonalDown al mismo tiempo, ambos marcados
(siendo asi contabilizada com 1). Asi es como queda marcada la "X" que
menciono desde el principio.

Gracias nuevamente.

MyVi
Respuesta Responder a este mensaje
#7 MyVi
20/05/2007 - 00:14 | Informe spam
un poco más alla.

A ver, tras lo que me dices he probado con esto (que ya verás que no
funciona)

Private Sub contarceldasconX()
Dim c As Range
Dim numceldasconX As Integer
Set c = Range("B8:AI31")
numceldasconX = 0
For Each c In ActiveSheet.UsedRange
If c.Borders(xlDiagonalDown).LineStyle <> "" Then '[se puede sustituir
con xlDiagonalUP o combinar para verificar que 'tenga las dos]
numceldasconX = numceldasconX + 1
End If
ActiveSheet.Range("S36").Value = numceldasconX
End Sub

Y efectivamente!! no funciona! No me da errores, pero la celda "S36"
no me muestra nada!!

Bueno, me da que me dejo cosas. Bueno, esta bastante claro que asi es,
pero esto es fruto de la ignorancia.

Gracias nuevamente

MyVi
Respuesta Responder a este mensaje
#8 zz
20/05/2007 - 00:17 | Informe spam
en ese caso debes evaluar que ambos bordes se encuentren presentes y
visibles

la modificacion seria la siguiente

if c.borders(xldiagonalup) and c.borders(xldiagonaldown).linestyle<>"" then


saludos.
30 de septiembre "Dia internacional de la panza chelera"
Que viva la familia...
Zz

"Error: The file 'Brain.sys' could not be found in folder 'Head', body will
now work in reduced functionality mode'
Loading Heart.sys...

"MyVi" wrote in message
news:
Ah! ahi esta. Por cierto, necesito que me cuente la celda que tiene el
xlDiagonalUP y el xlDiagonalDown al mismo tiempo, ambos marcados
(siendo asi contabilizada com 1). Asi es como queda marcada la "X" que
menciono desde el principio.

Gracias nuevamente.

MyVi

Respuesta Responder a este mensaje
#9 zz
20/05/2007 - 00:21 | Informe spam
La macro en si revisa cada celda incluida dentro de el rango especial
Usedrange que son todas las celdas "usadas" de la hoja activa, llamense
celdas con valores, formato o condicion especial que la difiera de las
celdas vacias o no usadas.

con respecto a tu otra pregunta:

el evento SelectionChange del objeto Sheet ejecuta la accion que le
determines cuando la seleccion de la hoja activa cambia, esto quiere decir
que se ejecuta todo lo que esta entre

Sub Sheet_SelectionChange()

end sub

cada vez que cambia la 'seleccion', entiendase como cambio de seleccion todo
'Click', movimiento entre celdas, seleccion de objetos incrustados, etc.


Saludos.

30 de septiembre "Dia internacional de la panza chelera"
Que viva la familia...
Zz

"Error: The file 'Brain.sys' could not be found in folder 'Head', body will
now work in reduced functionality mode'
Loading Heart.sys...

"MyVi" wrote in message
news:
Vale, eso seguro que me sirve.

Veamos mi ignorancia.

Con lo que me has contado hasta el momento, no veo cómo sabe dicha
macro el rango de celdas donde ha de contar.
Mi rango seria Range("B8:AI31").
Después, me gustaria que no sea una macro, debido a que si lo es, debo
ejecutarla de alguna forma. Asi que seguro que puedo introducir dicho
código de alguna forma en Hoja1, para que se ejecute cada vez que
marco una celda (y asi me la contabiliza mostrando el resultado en la
famosa celda).

¿Me dejo más algun detalle? Es posible, pero no lo veo ahora mismo.

Espero que sea suficiente.

Gracias por todo.

MyVi
Respuesta Responder a este mensaje
#10 zz
20/05/2007 - 00:33 | Informe spam
revisando mi macro me doy cuenta de que en realidad no funciona como yo
pensaba, sigo aprendiendo y no todo es tan facil como se ve, mil disculpas
por el tiempo que te he hecho perder, revisare bien la macro para dar con el
detalle que tiene, en principio pense que era el comentario que con solo
borrarlo lo hubiera solucionado, pero no es por ahi el problema.

:(

30 de septiembre "Dia internacional de la panza chelera"
Que viva la familia...
Zz

"Error: The file 'Brain.sys' could not be found in folder 'Head', body will
now work in reduced functionality mode'
Loading Heart.sys...

"MyVi" wrote in message
news:
Bueno, no estoy seguro.

A ver, el caso es que necesito contarlas para que aparezca la suma en
una celda concreta.
x1= el nº de veces que en el range(x,y) hay una celda con sus dos
bordes marcados.

Es como tachar una celda para contabilizarla como 1. Si tachas dos
pues tienes 2 dias contabilizados.
El cómo tachar la celda ya lo tengo controlado. Ahora solo me falta el
poder contar el nº de celdas tachadas. Y que este resultado se muestre
en una celda.

Voy a tratar de estudiarme tu propuesta, pero mi primer vistazo ya me
ha dado problemas (de ahi que ya esté respondiendo).

gracias

MyVi
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida