detectar formato de celda negrita en formula

08/05/2006 - 20:45 por Prodigia Consultores S.L. | Informe spam
Hola grupo quiero hacer un sumatorio de una columna y que sólo me sume las
celdas q estén en negrita.

Podríais decirme cómo se hace. No sé poner la prueba lógica que detecte el
formato de celda en negrita.

Abierto a otras sugerencias. Gracias por adelantado.

Preguntas similare

Leer las respuestas

#1 David
08/05/2006 - 21:07 | Informe spam
Intenta hacerlo por código. Prueba la siguiente función:

Function SumarNegritas(Rango As Range)
Dim Total As Double
For Each celda In Rango.Cells
If celda.Font.Bold = True Then Total = Total + celda.Value
Next celda
SumarNegritas = Total
End Function



"Prodigia Consultores S.L." escribió:

Hola grupo quiero hacer un sumatorio de una columna y que sólo me sume las
celdas q estén en negrita.

Podríais decirme cómo se hace. No sé poner la prueba lógica que detecte el
formato de celda en negrita.

Abierto a otras sugerencias. Gracias por adelantado.



Respuesta Responder a este mensaje
#2 J.P.
09/05/2006 - 15:12 | Informe spam
La función como tal esta bien planteada lo unico es que te puede
generar un error al faltarle, que cierres el If que fue abierto para
tal motivo incluyele el End If.

Function SumarNegritas(Rango As Range)
Dim Total As Double
For Each celda In Rango.Cells
If celda.Font.Bold = True Then
Total = Total + celda.Value
End If
Next celda
SumarNegritas = Total
End Function
Respuesta Responder a este mensaje
#3 David
09/05/2006 - 15:45 | Informe spam
Hola, J.P.

Como este foro es para que aprendamos y mejoremos, quisiera comentar que la
instrucción IF tiene múltiples sintaxis. En lo personal, como he programado
con varios lenguajes, algunos no estructurados como el viejo GWBasic, me
siento más cómodo al utilizar la sintaxis corta. La he probado cientos de
veces, y te puedo asegurar que no falla. Pero si prefieres la otra,
¡Excelente! ¡También funciona! ;-)

Las diferentes sintaxis de la instrucción IF pueden ser:


1.
Para la ejecución de una sola instrucción condicionada:

If [condición] Then [instrucción]


2.
aunque también puede ejecutar varias instrucciones:

If [condición] Then [instrucción1]:[instrucción2]:...


3.
Ahora bien, aquí ya es mejor utilizar la sintaxis que sugieres:

If [condición] Then
[instrucción1]
[instrucción2]
...
End If


4.
Y cuando es necesario considerar la posibilidad de el caso contrario,
también hay una sintaxis corta:

If [condición] Then [Instrucción-SI] Else [Instrucción-NO]


5.
que cuando hay más de una instrucción a considerar se podría escribir en la
sintaxis que mencionas:

If [Condición] Then
[Instrucción-SI1]
[Instrucción-SI2]
...
Else
[Instrucción-NO1]
[Instrucción-NO2]
...
End If


6.
o si consideras la posibilidad de anidar condiciones:

If [Condición1] then
[Instrucción1]
...
ElseIf [Condición2] then
[Instrucción2]
...
ElseIf [Condición3] then
[Instrucción3]
...
Else
[Instrucción4]
...
End If


Así que hay para todos los gustos y necesidades...

Saludos cordiales.



"J.P." escribió:

La funcin como tal esta bien planteada lo unico es que te puede
generar un error al faltarle, que cierres el If que fue abierto para
tal motivo incluyele el End If.

Function SumarNegritas(Rango As Range)
Dim Total As Double
For Each celda In Rango.Cells
If celda.Font.Bold = True Then
Total = Total + celda.Value
End If
Next celda
SumarNegritas = Total
End Function


Respuesta Responder a este mensaje
#4 J.P.
09/05/2006 - 16:21 | Informe spam
Lo decia es porque yo trabajo en excel 2000, no se si tal vez me falta
abrir alguna libreria, pero el hecho es que no me funciona sin cerrar
el If independientemente del numero de instrucciones.

De todas maneras que bueno saber que hay otras formas mucho mas simples
que en un futuro podria utilizar.

Gracias y espero que la enseñanza sea mutua.
Respuesta Responder a este mensaje
#5 David
09/05/2006 - 19:18 | Informe spam
Pues... Creo que si hay posibilidad que falle en otras versiones, no lo
debería hacer de esa manera :(

Gracias a tí.



"J.P." escribió:

Lo decia es porque yo trabajo en excel 2000, no se si tal vez me falta
abrir alguna libreria, pero el hecho es que no me funciona sin cerrar
el If independientemente del numero de instrucciones.

De todas maneras que bueno saber que hay otras formas mucho mas simples
que en un futuro podria utilizar.

Gracias y espero que la enseanza sea mutua.


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