• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Functie verborgen rijen

Status
Niet open voor verdere reacties.

Leotaxi

Verenigingslid
Lid geworden
18 aug 2014
Berichten
891
heb een macro voor het tellen van verborgen rijen
deze werkt perfect maar wat ik graag zou hebben en
niet gedaan krijg is zoiets in een functie, iemand een idee ?

mvg
Leo
 
Als je de huidige macro even plaatst is daar vast wel wat van te maken.
 
Laatst bewerkt:
Even als gokje dat er wel iets in die verborgen cellen staat, dan zou je gebruik kunnen maken van deze functies (testje op kolom C in dit voorbeeld)
Code:
[English]	=COUNT(C:C)-SUBTOTAL(102;C:C)

[Dutch] 	=AANTAL(C:C)-SUBTOTAAL(102;C:C)
 
@ Edmoor

wordt iets voor vanavond, heb het hier niet ter beschikking.


maar ongeveer zoiets

Code:
dim lr as long,r as long 
for x = 1 to lr
with activesheet
if .rows(x).hidden = true then
r = r+1
end if
next

mvg
Leo
 
Zoiets:
Code:
Function TelVerborgenRijen() As Long
    Dim x As Long
    Application.Volatile
    With ActiveSheet
        For x = .UsedRange.Row To _
                .UsedRange.Rows.Count
            If .Rows(x).Hidden Then
                TelVerborgenRijen = TelVerborgenRijen + 1
            End If
        Next x
    End With
End Function
De code plaats je uiteraard in een formule.
 
Laatst bewerkt:
Ik dacht 'm zó op te lossen...
Code:
Function Onzichtbaar(Bereik As Range) As Long

     For Each Deel In Bereik.SpecialCells(xlCellTypeVisible).Areas
        x = x + Deel.Rows.Count
    Next Deel
    Onzichtbaar = Bereik.Rows.Count - x

End Function

Sub ff()

    MsgBox "totaal verborgen regels: " & Onzichtbaar(Columns(1))

End Sub
Maar vreemd genoeg werkt 't via de opgestarte subprocedure wél, maar als UDF in de sheet niet. Geen idee waarom niet...
 
Quote van Andy Pope:
Normally functions called from the worksheet that manipulate the worksheet or other objects will result in an error.
Some objects, such as SpecialCells, do not error BUT they also do not work correctly.
 
@Wher, ah.... Dank voor je meedenken (en vooral zoeken ;)). Deze uitspraak van Andy zegt een hoop. Wel vréémd én héél jammer natuurlijk. De oplossing was hiermee zo rete simpel geweest. :D
 
Toch n.a.v. bovenstaande de functie gewijzigd. Zie #5.
 
Dan maken we er toch iets simpels van.

Code:
Function Tel()
Application.Volatile
With ActiveSheet
    For j = 1 To .UsedRange.Rows.Count
        If .Rows(j).Hidden Then Tel = Tel + 1
    Next j
End With
End Function

Edit, @edmoor jouw modificatie even niet gezien.;)
 
Laatst bewerkt:
Ik was vergeten de Application.Volatile er weer in te zetten ;)
 
@ Ginger
krijg het resultaat wel in msgbox maar niet in de cel.

@ Edmoor en Ven A
werkt perfect voor gans het blad maar waarom ik het graag in
een functie wil is om begin en einde aan te kunnen geven, dus
hoeveel verborgen rijen tussen rij 800 en 1200 bv.


mvg
Leo
 
Da's maar een kleine aanpassing:
Code:
Function TelVerborgenRijen(Start As Long, Einde As Long) As Long
    Dim x As Long
    Application.Volatile
    For x = Start To Einde
        If ActiveSheet.Rows(x).Hidden Then
            TelVerborgenRijen = TelVerborgenRijen + 1
        End If
    Next x
End Function

Aanroep:
=TelVerborgenRijen(800;1200)
 
Laatst bewerkt:
Ok dan. Veel plezier er mee :)
 
zo blij dat ik een en ander vergeet
iedereen bedankt om mee te zoeken
en bij deze ook als opgelost gezet


mvg
Leo
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan