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

Kan dit sneller of beter

Status
Niet open voor verdere reacties.

caffie

Gebruiker
Lid geworden
2 jan 2008
Berichten
291
For m = 5 To 405
If ActiveSheet.Cells(m, "C") <> "" Then
Rows(m).EntireRow.Hidden = False
Else
Rows(m).EntireRow.Hidden = True
End If
next


Ik heb de bovenstaande macro gemaakt
maar aan gezien de sheet soms wel lang bezig is
vraag ik me af of dit anders of sneller kan.


Vast heel erg bedankt

Rob
 
hoi probeer dit eens

Code:
Application.ScreenUpdating = False
    For m = 5 To 405
        If ActiveSheet.Cells(m, "C") <> "" Then
            Rows(m).EntireRow.Hidden = False
        Else
            Rows(m).EntireRow.Hidden = True
        End If
    Next
Application.ScreenUpdating = True

groet sylvester
 
Application.ScreenUpdating = True
Application.ScreenUpdating = False


Gebruik ik voor ik de macro laat runnen
en aan het einde van de macro zet ik hem weer aan

dat had ik al toegepast

ik vraag me af of er een snellere of betere manier is dan dat ik nu toe pas
 
hoi
hoe lang doet hij er bij jouw over?
bij mij doet hij er met 400 regels ongeveer 0,02 sec over
met ScreenUpdating op false
 
caffie

dit kan ook versnelling geven:
bepaal eerst de gebieden R1 en R2 welke verborgen moeten worden of niet
en voer het verbergen en zichtbaar maken daarna pas uit.
bijvoorbeeld zo:
Code:
Sub test1()
    Dim R1 As Range: Dim R2 As Range: Dim R As Range
    For m = 5 To 405
        Set R = Cells(m, "C")
        If R <> "" Then
            If R1 Is Nothing Then
                Set R1 = R
            Else
                Set R1 = Union(R1, R)
            End If
        Else
            If R2 Is Nothing Then
                Set R2 = R
            Else
                Set R2 = Union(R2, R)
            End If
        End If
    Next m
    R1.EntireRow.Hidden = False
    R2.EntireRow.Hidden = True
End Sub
groet sylvester
 
Alle hartelijk bedankt voor het mee denken

ik geloof dat ik niet veel winst ga halen

dus ik denk dat ik moet kijken waarom hij zo langzaam is

dit komt waarschijnlijk niet door de macro.


toch nog bedankt voor alles

Rob
 
Of misschien:
Code:
Sub Rijen_verbergen()
    Range("C5:C405").AutoFilter Field:=1, Criteria1:=">0", visibledropdown:=False
End Sub
 
Nog maar een optie? :d

Code:
Sub Verberg()

    Range("C5:C405").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True

End Sub

Groet, Leo
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan