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

Excel sneller maken

Status
Niet open voor verdere reacties.

toverkamp

Gebruiker
Lid geworden
11 sep 2006
Berichten
403
Beste excelliefhebbers,

Ik ben al een tijd bezig met het maken van een bestand. Deze is nu erg groot aan het worden, en ik werkte vaak met een automatische autofilter. Ik kwam erachter dat deze maar tot 1000 cellen kon filteren. Dus ik ben bezig codes in vba aan het ombouwen. Dit doe ik ook om excel sneller berekeningen te laten uitvoeren, want met een autofilter gaat het wel heel traag.
Bij de volgende code loop ik tegen een probleem aan:
Code:
With Worksheets("idnummers")
[B]    Set kassanr = .Range("f5:f3000").Find(gegidnummersfiliaal.Value, LookIn:=xlValues, lookat:=xlWhole)
    Set kassanr = .Range("c5:c3000").Find(gegfiliaalnummer.Value, LookIn:=xlValues, lookat:=xlWhole)[/B]
        If Not kassanr Is Nothing Then
        gegfiliaalnummeridgegevens.Text = .Range("c" & kassanr.Row)
        gegkassanummer.Text = .Range("f" & kassanr.Row)
        gegidnummer.Text = .Range("B" & kassanr.Row)
        gegdatumplaatsing.Text = .Range("g" & kassanr.Row)
Het gaat om het vetgedrukte gedeelte, want ik zoek in het werkblad idnummers naar gegevens die bij een kassanummer en filiaalnummer horen. Er moet dus op 2 gegevens gezocht worden. Ten eerste moeten de gegevens voldoen aan gegidnummersfiliaal en ten tweede aan gegfiliaalnummer. En hierbij samen horen gegevens als gegidnummer, gegdatumplaatsen e.d.

Weet iemand wat ik aan de code moet veranderen om de gegevens aan beide voorwaarden te laten voldoen?
 
Autofilter is al zowat het snelste dat je kan doen als je data wilt zoeken. Zeker als je in een beperkt aantal kolommen blijft.

Er is dus iets anders aan de hand.

Wigi
 
Wigi bedankt voor je reactie! Maar wat als er nou meer dan 1000 regels zijn?
 
Autofilter filtert meer dan 1000 regels, in de dropdown menus geeft het enkel de eerste 1000 weer.

Wigi

Okee dat had ik niet begrepen. Dus met de volgende code kan ik alle regels vinden tot 65536?:
Code:
Private Sub filiaalnummer_Change()

kassanummerstoringmelding.Clear

    Dim c As Range, filteredRange As Range
    With Sheets("idnummers").Range("B4").CurrentRegion
        .AutoFilter
        .AutoFilter Field:=2, Criteria1:=filiaalnummer.Value
    End With
    
    With Sheets("idnummers").AutoFilter.Range
        On Error Resume Next
        Set filteredRange = .Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible)
    End With
    
    For Each c In Intersect(filteredRange, Sheets("idnummers").Columns(6))
        Storingsformulier.kassanummerstoringmelding.AddItem c
    Next

End Sub
 
Okee dat had ik niet begrepen. Dus met de volgende code kan ik alle regels vinden tot 65536?:
Code:
Private Sub filiaalnummer_Change()

kassanummerstoringmelding.Clear

    Dim c As Range, filteredRange As Range
    With Sheets("idnummers").Range("B4").CurrentRegion
        .AutoFilter
        .AutoFilter Field:=2, Criteria1:=filiaalnummer.Value
    End With
    
    With Sheets("idnummers").AutoFilter.Range
        On Error Resume Next
        Set filteredRange = .Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible)
    End With
    
    For Each c In Intersect(filteredRange, Sheets("idnummers").Columns(6))
        Storingsformulier.kassanummerstoringmelding.AddItem c
    Next

End Sub

ja
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan