• 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.

Meerdere rijen tegelijk verbergen / zichtbaar maken

Status
Niet open voor verdere reacties.

MeltedForest

Gebruiker
Lid geworden
22 sep 2008
Berichten
178
Hallo,

Ik heb hier een Excelbestandje met 15 kolommen en 2500 records, waar een aantal lege rijen in zitten. Zo nu en dan worden de gegevens in de records opnieuw geladen, waardoor het aantal lege rijen varieert, net als de posities van deze lege rijen. Nu wil ik voor de gegevens opnieuw geladen worden de boel zichtbaar maken, en nadat deze geladen zijn weer verbergen.

Nu heb ik de volgende code er op losgelaten (voor het verbergen):

Code:
Sub HideRows()

totalrows = ActiveSheet.UsedRange.Rows.Count

For Row = 11 To totalrows
    If Cells(Row, 2).Value = "" Then
        Rows(Row).Hidden = True
    End If
Next Row

End Sub

Alleen nu zit ik 5 minuten te wachten tot hij hiermee klaar is :shocked:.

Er is vast een snellere manier, maar hoe?

En is er een manier om 2500 rows in één keer zichtbaar te maken?
 
kun je niet gewoon een filter gebruiken
 
Verbergen: eerst de lege rijen toevoegen aan een range en pas na de Loop de rijen verbergen --> dit gaat heet wat sneller.
Code:
Sub HideRows()

Dim totalrows as Long
Dim a As Integer
Dim hide As Range

With ActiveWorkbook.Sheets(1)
totalrows = ActiveSheet.UsedRange.Rows.Count

For a = 2 To lastrow
    If .Cells(a, "B") = "" Then
        If hide Is Nothing Then
            Set hide = .Cells(a, "B").Cells
        Else
            Set hide = Application.Union(hide, .Cells(a, "B").Cells)
        End If
    End If
Next a

If Not hide Is Nothing Then hide.EntireRow.Hidden = true

End With
End Sub


Voor het terug zichtbaar maken
Code:
Sub ShowRows()
Dim totalrows as Long
totalrows = ActiveSheet.UsedRange.Rows.Count
Range("B1:B" & totalrows).EntireRow.Hidden = False
End Sub
 
Laatst bewerkt:
Bedankt, ik ga er even mee puzzelen :thumb:

Is opgelost :)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan