anoniem Geplaatst: 20 december 2007 Delen Geplaatst: 20 december 2007 Ik heb de volgende macro geschreven. Deze moet plus minus 25000 line item controleren. Dit duurd redelijk lang. Omdat ik niet een een goede programeur ben. Zou ik jullie willen vragen er na te kijken en eventuele verbetering aan te brengen waardoor de macro sneller loopt. De Code: [code:1:f523678b49] Sub usergroup() Dim valuefalse As String Dim valuetrue As String Dim runTo As Integer Dim i As Integer Dim Waarde As String Dim check As String valuetrue = "yes" valuefalse = "no" ValidationArea = Sheet2.Range("A2:A24") runTo = Sheet2.Range("F1").Value For i = 0 To runTo check = Sheet1.Range("F1").Offset(i, 0).Value Waarde = Sheet1.Range("E1").Offset(i, 0).Value If (check <> valuetrue) Then For Each Value In ValidationArea If (Not (IsEmpty(Value))) Then If (Not (IsEmpty(Value)) And InStr(Waarde, Value)) Then Sheet1.Range("F1").Offset(i, 0).Value = valuetrue Exit For Else Sheet1.Range("F1").Offset(i, 0).Value = valuefalse End If Else Exit For End If Next End If Next End Sub [/code:1:f523678b49] Waarde = de waarde die de cel heeft (een string) die vergeleken moet worden met de value. Value = de een waarde uit de validationArea (hierin staan momenteel 12 waardes. runTo = tot welke line die moet lopen. Quote Link naar reactie
anoniem Geplaatst: 22 december 2007 Auteur Delen Geplaatst: 22 december 2007 Ik ben gestopt met Excel om daar waardes mee te vergelijken, ik werk regelmatig met grootte bestanden (idd 25000, 50000 regels). Werkte wel maar het koffiezet apparaat maakte overuren. ;) Indien je een beetje met Access overweg kan dan merk je dat dit een factor 10 tot wel 1000 keer zo snel gaat en ook nog eens veel nauwkeuriger. Je maakt gebruik van een geneste lussen. ( de If then .. ). Dit kan vertragend werken. Tevens kan je de 12 waarden in een array plaatsen. Een array is een soort dim waarin plaats van 1 waarde meerdere waarde geplaatst kunnen worden. Vervang je vervolgens de geneste lussen door een case dan kan dit versnellend werken. Ik heb geen ervaring met het bouwen van arrays in Excel maar er is genoeg over te vinden op internet. Succes. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen