Beste medeforum gebruikers,
Ik zou graag willen weten of er iemand suggesties heeft om de volgende code effecienter te schrijven/laten werken.
Zie Code...
Het vreemde is dat wanneer ik bij het gedeelte van de If statement:
If Bestek = "" Then
...NIET het stuk "On Error Resume Next" invoeg de code heeeeeel langzaam gaat.
Je zou namelijk zeggen dat dit daar voldoende moet zijn:
Maar dit werkt dus heel langzaam op het moment dat ik Opnieuw een ander Onderhouds Bestek selecteer!
Ondanks de Application.ScreenUpdating = False
Iemand enig idee?
Alvast bedankt...
Gr, dprod
Ik zou graag willen weten of er iemand suggesties heeft om de volgende code effecienter te schrijven/laten werken.
Zie Code...
Code:
' deze code wordt geladen vanuit het workbook_change
' elke keer als de range A7 verandert moet er gekeken worden welke actie te ondernemen
' variabele Bestek is Public omdat deze zijn waarde moet behouden.
Option Explicit
Public Bestek As String
Public Const strDatabaseFile As String = "database.xls"
Public Sub CreateBestek()
Dim Exist As Range
Application.ScreenUpdating = False
'als de variabele Bestek gelijk = aan waarde Range A7... niks doen!
If Bestek = Range("A7").Value Then
Exit Sub
End If
'als de variabele Bestek gelijk = aan "" (niks dus!)... Range A13:C52 leeg maken
If Bestek = "" Then
Bestek = Range("A7").Value 'geef de variabele Bestek zijn nieuwe waarde
Range("A13:C52").ClearContents 'leeg maken
On Error Resume Next ' = GEEN LOG MELDING VOOR NODIG
Set Exist = Range("=" & strDatabaseFile & "!" & Bestek)
If Not (Exist Is Nothing) Then
Range("=" & strDatabaseFile & "!" & Bestek).Copy
Range("A13").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
End If
'als de variabale Bestek <> NIET gelijk is aan Range A7... het nieuwe bestek kopie�ren
If Bestek <> Range("A7").Value Then
Bestek = Range("A7").Value 'geef de variabele Bestek zijn nieuwe waarde
Range("A13:C52").ClearContents 'oude bestek gegevens verwijderen
On Error Resume Next ' als het bestek niet bestaat resume next
Set Exist = Range("=" & strDatabaseFile & "!" & Bestek) ' geeft exist de waarde van de databasefile + de bestek naam
If Not (Exist Is Nothing) Then 'als exist bestaat dan kopie�ren/plakken
Range("=" & strDatabaseFile & "!" & Bestek).Copy
Range("A13").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
End If
End Sub
Het vreemde is dat wanneer ik bij het gedeelte van de If statement:
If Bestek = "" Then
...NIET het stuk "On Error Resume Next" invoeg de code heeeeeel langzaam gaat.
Je zou namelijk zeggen dat dit daar voldoende moet zijn:
Code:
If Bestek = "" Then
Bestek = Range("A7").Value 'geef de variabele Bestek zijn nieuwe waarde
Range("A13:C52").ClearContents 'leeg maken
Maar dit werkt dus heel langzaam op het moment dat ik Opnieuw een ander Onderhouds Bestek selecteer!
Ondanks de Application.ScreenUpdating = False
Iemand enig idee?
Alvast bedankt...
Gr, dprod