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

Bestand loopt vast op code, moet minder zware oplossing

Status
Niet open voor verdere reacties.
Dit komt omdat bij de 2de manier de beide matrices ingelezen worden in het werkgeheugen, daar worden dan alle vergelijkingen in gemaakt en het resultaat wordt dan in 1X weggeschreven naar het doelblad.
Dat de 1ste manier wel veel sneller werkte is zoals ik al zei waarschijnlijk door het uitschakelen van de herberekening zodat er tijdens het vergelijken tijdelijk geen formules werden herberekend(dit vraagt tijd).
Nu is het enkel wachten op snb om de code nog verder te stroomlijnen:D:D
 
Laatst bewerkt:
SNB zal er vermoedelijk een heel klassieke somproduct zonder VBA over gooien of anders in VBA werken met arrays en/of met een dictionary.
Maar helpers moet je pamperen met een deftig voorbeeld, die kunnen ze zelf niet uitvinden.
 
@WB

Weinig op aan te merken. :thumb:
De essentie is natuurlijk het maximale gebruik van het werkgeheugen en minimalisering van interaktie met het werkblad.

wellicht :


Code:
Sub M_snb()
   t1 = Timer

   Sheets("Analyse").cells(1).currentregion.offset(1,1).ClearContents
   sn = Sheets("Analyse").cells(1).currentregion.resize(, 4)
   sp = Sheets("vastlegging").Cells(1).CurrentRegion

   For j = 2 To UBound(sn)
     For jj = 2 To UBound(sp)
        If sn(j,1)=sp(jj, 9)  Then sn(j,instr(" btm",sp(jj,5)))=sn(j,instr(" btm",sp(jj,5)))+1
     Next
   Next

   Sheets("Analyse").cells(1).currentregion.resize(, 4) = sn

   MsgBox Timer - t
End Sub

@cow18

zonder voorbeeldbestand begin ik inderdaad niet aan een somproduct benadering.
PS. Ik heb het Vlaamse woord 'deftig' even moeten opzoeken. Dat heeft bij ons die betekenis niet. Bij ons kunnen alleen personen deftig zijn.
 
Laatst bewerkt:
Somproduct had ik al gedaan, was ook mijn eerste gedachte. Maar ik red het even niet een vb bestandje te maken en de laatse oplossing van snb te proberen. Sorry heren. Wel ben ik onwijs tevreden met wat ik nu heb en al het meedenken. Mijn hartelijke dank!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan