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
Sub contarceldasconX()
Dim c As Range
Dim numceldasconX As Integer
numceldasconX = 0
For Each c In ActiveSheet.UsedRange
If c.Borders(xlDiagonalDown).LineStyle <> "" Then '[se puede sustituir con
xlDiagonalDown o combinar para verificar que 'tenga las dos]
numceldasconX = numceldasconX + 1
End If
Next
MsgBox numceldasconX
End Sub
--
--
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" <uril...@gmail.com> wrote in message
news:1179606528....@k79g2000hse.googlegroups.com...
> If c.Borders(xlDiagonalDown).LineStyle <> "" Then '[se puede sustituir con
> xlDiagonalUP o combinar para verificar que 'tenga las dos]
---------------^---^
esta artritis....
--
--
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...
---
"zz" <nom...@nospam.com> wrote in message
news:O8tUwWlm...@TK2MSFTNGP05.phx.gbl...
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
en lugar de devolverte las celdas contadas en una 'ventanita' te las
devuelva almacenada en un valor ,
sustituyendo la parte del
"MSgbox numceldasconX"
por algo como
activesheet.range("A1").value=numceldasconX
y colocando el nombre del procedimiento en el evento SelectionChange de la
hoja activa para que siempre te este actualizando la 'cuenta'.
pero es solo una humilde sugerencia desde luego.
--
--
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" <uril...@gmail.com> wrote in message
news:1179610491.8...@y80g2000hsf.googlegroups.com...
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
Gracias nuevamente.
MyVi
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
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" <uril...@gmail.com> wrote in message
news:1179612586....@u30g2000hsc.googlegroups.com...
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" <uril...@gmail.com> wrote in message
news:1179612385.3...@l77g2000hsb.googlegroups.com...
:(
--
--
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" <uril...@gmail.com> wrote in message
news:1179610491.8...@y80g2000hsf.googlegroups.com...
Private Sub contarceldasconX()
Dim c As Range
Dim numceldasconX As Integer
numceldasconX = 0
For Each c In ActiveSheet.Range("B10:B20")
If c.Borders(xlDiagonalUp).LineStyle > 0 And
c.Borders(xlDiagonalDown).LineStyle > 0 Then
numceldasconX = numceldasconX + 1
End If
Next
ActiveSheet.Range("S36").Value = numceldasconX
numceldasconX = 0
Set c = Nothing
End Sub
aunque siempre trato de crear las macros lo mas genericas posible, en esta
ocasion no me he querido complicar la vida, la anterior devolvia un conteo
absurdo y falso, no cabe duda que aun me queda un largo camino.
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...
---
"zz" <nom...@nospam.com> wrote in message
news:ezLAHXmm...@TK2MSFTNGP03.phx.gbl...
Aunque no es 100% lo que me gustaria, pero lo resuelve bastante bien.
If Selection.Borders(xlDiagonalDown).LineStyle = xlContinuous Then
ActiveSheet.Range("S36").Value = ActiveSheet.Range("S36").Value +
1
End If
Esto me incrementa el valor de dicha celda en 1 cada vez que marco una
X. Como la X la marco con un doble clic en la celda de la fecha, pues
a su vez me suma 1.
No esta mal. El problema es que si hago doble clic en la misma celda
mas de una vez me cuenta de más, y eso ya no es correcto.
Lo suyo seria que al hacer doble clic una vez me marcara la X y me
sumara el 1 y si volviera a hacer doble clic me borrara la X y me
restara un 1.
A ver, si alguna idea.
Esto que digo que hago ahora lo hago con este código:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel
As Boolean)
Dim Rng As Range
Set Rng = Range("B8:AI31")
If Not Application.Intersect(Rng, Target) Is Nothing Then
Application.Run "macro6" ' La macro6 me marca la X
Cancel = True
End If
If Selection.Borders(xlDiagonalDown).LineStyle = xlContinuous Then
ActiveSheet.Range("S36").Value = ActiveSheet.Range("S36").Value +
1
End If
End Sub
Bueno, si alguna idea perfecto. Sino lo voy a dejar asi.
Gracias nuevamente.
MyVi
por eso en la mía me decante por revisar el width o espesor del borde, un
espesor =<0 seria un borde no visible por lo tanto no lo contarías.
--
--
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" <uril...@gmail.com> wrote in message
news:1179618130.9...@e65g2000hsc.googlegroups.com...
--
--
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...
---
"zz" <nom...@nospam.com> wrote in message
news:%23MUKSAn...@TK2MSFTNGP06.phx.gbl...
Lo he puesto en Hoja1 dentro de
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel
As Boolean)
......
End Sub
muchas gracias
MyVi
--
--
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" <uril...@gmail.com> wrote in message
news:1179619157.9...@n59g2000hsh.googlegroups.com...
la verdad es que no he seguido el hilo y solo he leido este mensaje (y
a lo mejor digo una tonteria), pero para esta parte
si hago doble clic en la misma celda
> mas de una vez me cuenta de más, y eso ya no es correcto.
> Lo suyo seria que al hacer doble clic una vez me marcara la X y me
> sumara el 1 y si volviera a hacer doble clic me borrara la X y me
> restara un 1.
¿has probado a aplicar un condicional tipo 'Si esta la x pues borrar x
y restar 1 sino poner x y sumar 1 ?
como digo no he seguido el hilo, y quizas deberia callarme para no
decir una bobada, pero por si acaso
un saludo
Ivan
PD: de todas formas (segun creo) entre el doble click y el click a
veces ocurren cosas curiosillas.
mi idea sería que con una macro pusieras/ quitaras las X y con la otra las
contaras en el evento SelectionChange ya que esto te devolvería la cantidad
de X dentro del rango de una manera mas actualizada.
otra manera sería ponerla en el evento calculate con el calculation mode en
automatico.
--
--
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...
---
"Ivan" <lom...@teleline.es> wrote in message
news:1179622023....@u30g2000hsc.googlegroups.com...
muchas gracias por unirte al hilo.
Lo cierto es que ya se ha cerrado, pero quisiera decirte que
seguramente tengas razón.
No soy un experto en esto de Excel (avanzado) pero poco a poco vamos
aprendiendo.
Ha sido una evolución de cosas que he estado haciendo y el último paso
me lo ha resuelto ZZ.
No asi a la primera, por eso han salido cosas que no tocaban.
De hecho, lo que has leido, hace referencia a mas cosas que sino se
lee el resto no se saben.
Seguramente, lo que he hecho (el conjunto) se puede hacer mejor y más
facilmente, pero ya me funciona,
y como el código no es demasiado, el caso es que no ralentiza la
máquina, por ello es que no requiere ser depurado.
Con la solución final de ZZ ya no me pasa eso. Ya no me cuenta mas de
una vez, sino que solo me cuenta aquellas celdas que tienen la "X".
Te amplio que dicha "X" no es un nº o una texto, sino que son los
bordes de la celda.
Lo utilizo para marcar la casilla en un calendario y con toda esta
consulta (resuelta ya por ZZ) poder contar aquellas casillas marcadas
del calendario.
Esto (para mas detalle) es un calendario laboral donde uno marca
aquellos dias que desea solicitar de vacaciones. Al marcarlos, estos
salen contabilizados en una celda que es donde se hace la petición (un
poco más abajo del calendario).
En fin, como decia, ahora todo va bien. Para mayor ampliación ya solo
me gustaria ser capaz de hacer esto mismo bajo Adobe Acrobat y poder
tener un documento PDF que realice estos calculos y donde se pudiera
hacer esto: seleccionar los dias de un calendario y que estos se
contaran directamente. Pero creo que ya pido demasiado y me voy a
contentar con tenerlo en XLS.
Muchas gracias una vez más Ivan por tu interés.
MyVi.
Pues aqui esta:
Las "X" se marcan gracias a una macro que al hacer un doble clic sobre
una celda simplemente hace lo que hariamos manualmente (de ahi que la
he sacado):
Control +1 / Bordes / Seleccionar borde inclinado derecho e
izquierdo / Aceptar
Pues eso, o sea, esa celda queda con una X marcada, sin cambiarle el
color, ni el contenido (en este caso un nº), ni la fuente ni nada.
Dado que (como comento antes) las celdas que se marcan son los dias de
un calendario laboral (dia a dia, mes a mes), y hay dias que son fin
de semana, otros que son puentes, festivos, horario especial.. y por
ello, los colores ya son utilizados y demás y solo me quedaba (bueno
seguro que hay mas opciones) la el marcar los bordes.
En fin, lo dicho ya antes,
seguro que se puede hacer de forma más limpia y correcta. Seguramente
no hace falta ni macro para ello.
Pero, lo importante, es que me funciona.
Muchas gracias a los dos una vez más (ui! ya parezco el Papa de Roma
con tanto agradecimiento).
Creo que me voy a ir a dormir que para mi ya son las tirando a las
4am...
Buenas noches
MyVi
Vaya! si protejo la hoja me dan errores las MACROS?
Pues esta si que es buena! No lo sabía!!!
He protejido la hoja y he dejado aquellas celdas necesarias editables
(inclusive aquellas que todo codigo hace referencia, como en RANGE y
demás), pero sencillamente me da un error.
Mi gozo en un pozo.
MyVi
Listo.
MyVi
--
--
Visita: news://jmtella.com/jmtella.publico.office
news://jmtella.com/jmtella.publico.programacion.y.desarrollo
news://jmtella.com/jmtella.publico.linux
--
Zz
--
"MyVi" <uril...@gmail.com> wrote in message
news:1179669914....@h2g2000hsg.googlegroups.com...
> :-)
> Visita: news://jmtella.com/jmtella.publico.office
> news://jmtella.com/jmtella.publico.programacion.y.desarrollo
> news://jmtella.com/jmtella.publico.linux
es acaso 'esto' una nueva modalidad de spam ??? [para 'ampliar' mis filtros] :))
saludos,
hector.
[disculpame pero]...
-> no alcance a 'ver' la relacion entre el grupo/consulta/tema/... y demas 'relativos'
-> podrias comentar si es esta alguna forma de... informacion 'irrelevante' [segun lo anterior] ???
-> de cualquier forma, te 'invito' a que tu tambien visites la siguiente pagina:
http://www.microsoft.com/spain/Comunidades/reglas/reglas.asp
algunas secciones 'en especifico'...
1) reglas de conducta
a) asuntos tratados en los mensajes:
"... procure que sus publicaciones en los grupos de noticias y los chats se refieran al asunto que se esta tratando en los mismos"
b) propaganda - solicitudes:
"Estas comunidades fueron creadas... para proveer asistencia peer-to-peer para los productos y servicios de Microsoft"
"... favor se abstenga de publicar anuncios... que no correspondan directamente con el uso y el proposito del grupo de noticias o chat"
2) codigo de conducta del chat:
".. usted accede a cumplir las normas de nuestro codigo de conducta"
"Toda la actividad que tenga lugar dentro de los chats de Comunidades de Microsoft esta bajo las normas de utilizacion de Microsoft.com"
3) reglas del chat:
"El spam incluye enviar registros identicos e irrelevantes o no solicitados a muchos y diferentes usuarios"
"No... utilizar... las Comunidades de Microsoft con el proposito de enlazar a paginas externas que no cumplen este codigo de conducta."
"... al quedar sujeto al codigo de conducta, es usted responsable de adherirse a todas las leyes... en vigor en su lugar de residencia"
En verdad no creo estar violando ninguna de las reglas de estos NG (al menos
no al nivel que las ha violado el troll, aunque no me estoy comparando con
el), siempre he sentido que la libertad de expresión es una de las
libertades mas arraigadas de un ser humano, siempre tendemos a pelear por
decir lo que queremos y siempre que esto no coarte o dañe la de terceros
( aunque en ocasiones no se así).
De cualquier modo quiero reiterarle mi respeto y la invitacion a tomar mi
firma desde otro punto de vista, no pienso de ningun modo que sea algun tipo
de spam, puesto que no estoy posteando mensajes sin significado solo para
que los demás visiten estos nuevos NG, simplemente los incluyo en mi firma a
manera de apoyo a un amigo en su lucha personal contra indeseables.
Sería muy triste el ser objeto de la ampliación de su (imagino ya bastante
amplio, valga la redundancia) filtro, pero si es el precio que tengo que
pagar por brindar apoyo a una causa que a mi parecer es justa, lamentare el
postear alguna pregunta y prescindir de algunas de sus geniales respuestas.
Mil disculpas si mis mensajes no entran dentro de la categoria de lo que
usted considera apropiado para ser posteado en este foro y no se olvide que
a pesar de que usted ya no leerá mis mensajes yo seguire encantado de
aprender de los suyos.
se despide.
Walter Paul Rincón Piña (zz, por aquello de lo de anónimo).
--
--
Zz(home)
--
Tambien visita: news://jmtella.com/jmtella.publico.office
news://jmtella.com/jmtella.publico.programacion.y.desarrollo
news://jmtella.com/jmtella.publico.linux
---
"Héctor Miguel" <NOhemio...@PLShotmail.com> escribió en el mensaje
news:%23Ja0sC1...@TK2MSFTNGP05.phx.gbl...
[primero]: te agradezco, en todo lo que valen, dos 'detalles':
1) el haber 'develado' tu nombre [para mi, es importante, ya que me gusta 'mirar a los ojos' de mi interlocutor] :))
2) el 'nivel' de detalle con que has expuesto tus puntos de vista, consideraciones, apreciaciones y demas :D
[segundo]: puedes creerme si te digo que entiendo *perfectamente* tu intencion de brindar apoyo a un amigo [y de muchos]
[para mi] el que haya 'tirado la toalla'... [antes de tiempo], es como aquel que dice: "hay que morir en la raya" -???-
-> al fin y al cabo, aunque haya sido *en la raya*.. EL ahi *quiso* quedarse... *en la raya* [pero... 'muerto' ?]
[tercero]: *su lucha* ?... [creo que] no se trata de la lucha de *el llanero solitario* [ni debe *adjudicarse* la batalla a una sola persona]
-> somos muchos [si no es que *todos*] los que estamos contra *los indeseables* [aunque se trate solo de uno -actualmente-] :))
-> [aun asi] tampoco *luchar* otorga el derecho [a los buenos] de *hacer -casi- lo mismo* [que los malos]
o... acaso eres de los que creen que "el fin... justifica los medios" -???-
[cuarto]: *insisto*... sigo *si ver* la relacion [ni el beneficio] de visitar los foros *apoyados*... y ESTE GRUPO [excel] -???-
-> [por cierto] sabias que la *tematica* de uno de los foros apoyados [linux] mantiene en violacion poco mas de 100 patentes de MS ?
-> fue por *esto* que te apunte algunas *secciones en especifico* de la pagina *sugerida*
[quinto]: tampoco se trata de *mis* consideraciones, apreciaciones o interpretaciones [personales] de las *reglas de conducta*
-> "no hagas cosas malas, que parezcan buenas... ni cosas buenas, que parezcan malas"
por aquello de [que yo podria] *considerar* que las estas violando... y [tu] considerar *justo... pagar un precio* por apoyar una causa -?-
[sexto]: cuando los foros de nuestro amigo [por siempre, aun sin conocernos en directo] tengan contenidos *aplicables* a excel...
-> [ni lo dudes] estare/mos encantado/s con sus referencias -> mientras tanto... ??? [lo dejo a tu mejor criterio] ;)
te agradezco nuevamente *los detalles*... y, saludos,
hector.
> zz escribio en el mensaje ...
> Con todo respeto, mi estimadísimo... :
>
> En verdad no creo estar violando ninguna de las reglas de estos NG
> (al menos no al nivel que las ha violado el troll, aunque no me estoy comparando con el)
> siempre he sentido que la libertad de expresion es una de las libertades mas arraigadas de un ser humano
> siempre tendemos a pelear por decir lo que queremos y siempre que esto no coarte o da#e la de terceros (aunque en ocasiones no se asi).
>
> De cualquier modo quiero reiterarle mi respeto y la invitacion a tomar mi firma desde otro punto de vista
> no pienso de ningun modo que sea algun tipo de spam, puesto que no estoy posteando mensajes sin significado
> solo para que los demas visiten estos nuevos NG, simplemente los incluyo en mi firma a manera de apoyo a un amigo
> en su lucha personal contra indeseables.
>
> Seria muy triste el ser objeto de la ampliacion de su (imagino ya bastante amplio, valga la redundancia) filtro
> pero si es el precio que tengo que pagar por brindar apoyo a una causa que a mi parecer es justa
> lamentare el postear alguna pregunta y prescindir de algunas de sus geniales respuestas.
>
> Mil disculpas si mis mensajes no entran dentro de la categoria de lo que usted considera apropiado
> para ser posteado en este foro y no se olvide que a pesar de que usted ya no leera mis mensajes
> yo seguire encantado de aprender de los suyos.
>
> se despide.
>
> Walter Paul Rincón Piña (zz, por aquello de lo de anonimo).
>
> En verdad no creo estar violando ninguna de las reglas de estos NG (al menos
> no al nivel que las ha violado el troll, aunque no me estoy comparando con
> el), siempre he sentido que la libertad de expresión es una de las
> libertades mas arraigadas de un ser humano, siempre tendemos a pelear por
> decir lo que queremos y siempre que esto no coarte o dañe la de terceros
> ( aunque en ocasiones no se así).
>
Hola :-)
Perdón por la intromisión, pero como usuaria asidua de News Groups
Microsoft he de hacerte una preguntas :
exactamente, según tu, cual es el motivo que nos deberia llevar a los
participantes de Excel ha integrar y participar en estos grupos de
noticias ¿? :-?
la acción del troll, ha beneficiado sin lugar a dudas, a los grupos que
tu publicitas. De todas formas un foro de soporte con grupos no
relacionados con la tematica de este grupo, están totalmente
fuera de tema en Excel ...
¿ lo ves normal? ¿te has parado a pensar en las consecuencias? , Parate
a pensar ¿quien sale beneficiado? , Parate a pensar ¿quien sale perjudicado?
Saludos
Monica
--
Estado: A la Espera By Fermu
Tic-Tac-Tic-Tac...
Now We are free [Enya]
------------------------