Enkele gegevens in tabel wijzigen

Status
Niet open voor verdere reacties.

keesantens

Gebruiker
Lid geworden
29 sep 2012
Berichten
17
Hallo lezers,

Ik heb de volgende code in VBA van Excel staan:

Type aRecord
Date As Long
Shift As String
Group As String
Unit As String
Capaciteit As String
Expectedproduction As String
Produced As String
Disapproved_product As String
Microstops As String
Quality As String
OEE As Double
End Type
Public Sub MaakDatabase()
Application.ScreenUpdating = False


Dim nEinde As Long
Dim nRegelteller As Long
Dim nRegel As Long
Dim aRegel(100000) As aRecord

With sheets("Afkeur")
Application.ScreenUpdating = False
nEinde = .Range("A100000").End(xlUp).Row
nRegelteller = 1
nRegel = 0
With .Range("A1")
Do While nRegelteller <= nEinde

If Val(.Offset(nRegelteller, 0)) > 0 Then


aRegel(nRegel).Microstops = .Offset(nRegelteller, 6)
aRegel(nRegel).Disapproved_product = .Offset(nRegelteller, 9)
aRegel(nRegel).Quality = .Offset(nRegelteller, 12)
aRegel(nRegel).OEE = .Offset(nRegelteller, 14)

nRegel = nRegel + 1
End If
nRegelteller = nRegelteller + 1
Loop
End With
End With

nRegelteller = 0
With sheets("Tijd").Range("A2")
Application.ScreenUpdating = False
Do While nRegelteller < nRegel

.Offset(nRegelteller, 78) = aRegel(nRegelteller).Microstops
.Offset(nRegelteller, 83) = aRegel(nRegelteller).Disapproved_product
.Offset(nRegelteller, 86) = aRegel(nRegelteller).Quality
.Offset(nRegelteller, 87) = aRegel(nRegelteller).OEE

nRegelteller = nRegelteller + 1
Loop

End With

Application.ScreenUpdating = False

End Sub
Het duurt een hele tijd zeker enkele 10 minuten om zo'n enkel wijzigingen (zo'n 3 wijzigingen) in een tabel door te voeren (tabel bestaat uit zo'n 8000 records, worden alleen maar meer).:eek:
Hoe kun je de tijd aanzienlijk verkorten??:)
 
Je hebt een quote tag gebruikt in plaats van een code tage, zo is het moeilijk lezen. Tevens heb je er een aantal keren Application.ScreenUpdating = False in staan terwijl dit maar 1x nodig is aan het begin van de procedure. Die laatste False, net voor de End Sub moet je wijzigen in True.
Dit zal niet je probleem oplossen maar het viel me op.
 
Als de vraag VBA betreft hoort het ook in die sectie te staan. Kortom Visual Basic is iets anders dan Visual Basic for Applications, VBA is programmeren binnen Office applicaties. Verplaatst naar juiste sectie.
 
Waaruit blijkt dat er een wijziging is ?
 
Als ik in tabblad Afkeur onder kolom Disapproved product één of meerdere (3) wijzingen aanbreng, en druk op Knop 2, duurt het verwerken zeker 10 minuten.:confused:
Wijziging.jpg
 
Daar heb je toch ook geen VBA voor nodig ?

Zonder zicht op je formules en alle VBA in het werkboek kunnen we niets over snelheid zeggen.
Aan plaatjes hebben we dan niets.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan