............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

Función Contar.Si.Conjunto

Ver el tema anterior Ver el tema siguiente Ir abajo

Función Contar.Si.Conjunto

Mensaje por icehell el Miér Oct 10, 2012 3:20 pm

Hola compañeros, no consigo adaptar esta función a Vba, estoy dándole vueltas y no encuentro dónde puedo informarme de ella.

Bien esto es lo que pretendo
Código:
=CONTAR.SI.CONJUNTO(E10:E30;">=100";E10:E30;"<140")
como podeis ver hay no tengo problema alguno, a la hora de incluirla en una macro es cuando me asalta la confusión e hice lo fácil

Código:
Range("O2").Select
    ActiveCell.FormulaR1C1 = _
        "=COUNTIFS(R[4]C[-10]:R[24]C[-10],"">=100"",R[4]C[-10]:R[24]C[-10],""<140"")"
        ten = Range("O2")
        Label54 = ten


Pero me gustaría hacerlo sin tener que usar la hoja para incluir la fórmula, llamando a la función y es aquí donde no tengo ni idea salvo esto que no me va

Código:

ten= Application.WorksheetFunction.CountIf((Range(Cells(10, 5), Cells(30, 5)), ">=100")*(Range(Cells(10, 5), Cells(30, 5),"<140")*1)
Label54 = ten
 
Agradecería rectificación y orientación de dónde puedo encontrar esa ayuda para resolver futuras dudas con otras funciones.

icehell

Masculino Cantidad de envíos : 64
Edad : 42
Ciudad - Pais : Arrecife
Version de Excel : 2010
Fecha de inscripción : 26/11/2010

http://icehellsoftware.260mb.org/

Volver arriba Ir abajo

Re: Función Contar.Si.Conjunto

Mensaje por icehell el Jue Oct 11, 2012 5:37 pm

Solucionado
Código:
WorksheetFunction.CountIfs(Range("E10:E29"), ">=100", Range("E10:E29"), "<140")

Y la función que me paso Logroastur
Código:
Private Function MyContarSiConjunto(rng As Range, dato As String, rng1 As Range, dato1 As String) As Long
    Dim i As Long
    Dim formula
    formula = rng.Address & "," & """" & dato & """" & "," & rng1.Address & "," & """" & dato1 & """"
    MyContarSiConjunto = Application.Evaluate("COUNTIFS(" & formula & ")")
End Function
Sub ObtenerContarSiConjunto()
MsgBox MyContarSiConjunto(Range("E10:E29"), ">=100", Range("E10:E29"), "<140")
End Sub
Ambas soluciones funcionaron perfectamente.

icehell

Masculino Cantidad de envíos : 64
Edad : 42
Ciudad - Pais : Arrecife
Version de Excel : 2010
Fecha de inscripción : 26/11/2010

http://icehellsoftware.260mb.org/

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.