Avatar billede jensfpk Nybegynder
19. oktober 2008 - 16:15 Der er 3 kommentarer og
1 løsning

Optimer min tælv.hvis kode

Hej.

Jeg har flere tabeller som jeg filtrerer vha. nogle filtre. Herefter ønsker jeg at tælle antallet af rækker, hvor et kriterie er opfyldt, fx at værdien i kollonne C = KPI.

Jeg kan ikke bruge en tæl.hvis funktion, da den også tæller de skjulte celler (dem jeg har filtreret fra), og tælv.hvis funktion findes ikke.

Derfor har jeg lavet min egen tælv.hvis, men den synes bare ganske langsom, og langt langsommere end fx tæl.hvis.

Håber I har nogle ideér til at gøre den hurtigere

Function TÆLVHVIS(Myrange As Range, Mykriterie As Variant) As Integer

    Dim c As Range
    For Each c In Myrange
        row = c.row 'anvender jeg bare for at følge med
        If (c.Value = Mykriterie) And (c.EntireRow.Hidden = False) Then
            TÆLVHVIS = TÆLVHVIS + 1
        End If
    Next c
           
End Function

Pointene går til den, som får koden til at virke bedst alias hurtigst, eller til  den som løser problemet på en anden og bedre måde.
Avatar billede kabbak Professor
19. oktober 2008 - 23:07 #1
Der kan nok ikke speedes meget op på den, men lidt, det hjælper at kun teste på en ting ad gangen.
Hvis rækken er skjult, behøves der ikke at tjekke på kriterie.

Function TÆLVHVIS(Myrange As Range, Mykriterie As Variant) As Integer
    Dim C As Range
    For Each C In Myrange
      ' Row = C.Row    'anvender jeg bare for at følge med
        If C.EntireRow.Hidden = False Then
            If C = Mykriterie Then
                TÆLVHVIS = TÆLVHVIS + 1
            End If
        End If
    Next C

End Function
Avatar billede jensfpk Nybegynder
20. oktober 2008 - 13:52 #2
Udmærket Kabbak, en lille forbedring er bedre end ingenting

Jeg bruger Office 2007, så kunne man måske gøre koden i stand til at anvende begge kerner?
Avatar billede jensfpk Nybegynder
25. oktober 2008 - 18:36 #3
Da ingen andre synes at have tilføjelser, går point til kabbak.
Derfor kabbak, giv et svar og få point
Avatar billede kabbak Professor
25. oktober 2008 - 22:53 #4
;-))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester