johnsharda
Gebruiker
- Lid geworden
- 2 jul 2017
- Berichten
- 23
Goedenavond,
Ik heb onderstaande code maar als ik de macro activeer duurt het ca. 8sec voordat dit klaar is.
Er zijn zo'n 2300regels aan tekst die de makro door moet.
Is er een manier om dit sneller te doen?
-----------------------------------------
Dim Cel As Range
Dim Werkblad As Worksheet
Dim Kolommen As Range
' Referentie naar het actieve werkblad
Set Werkblad = ActiveSheet
' Schakel de beveiliging van het werkblad uit
Werkblad.Unprotect
' Sorteer de kolommen A tot en met G
Werkblad.Columns("A:G").Sort Key1:=Werkblad.Range("A1"), Order1:=xlAscending, Header:=xlYes
' Definieer het bereik van kolommen A tot en met G
Set Kolommen = Werkblad.Range("A2:G5000")
' Loop door elke cel in de opgegeven kolommen
For Each Cel In Kolommen
' Controleer of de cel een waarde heeft (niet leeg is)
If Cel.Value <> "" Then
' Vergrendel de cel
Cel.Locked = True
End If
Next Cel
' Activeer de beveiliging van het werkblad
Werkblad.Protect
ActiveWorkbook.Save
MsgBox "De gegevens zijn opgeslagen.", vbInformation
Range("A:A").Find("").Select
End Sub••••ˇˇˇˇ
Ik heb onderstaande code maar als ik de macro activeer duurt het ca. 8sec voordat dit klaar is.
Er zijn zo'n 2300regels aan tekst die de makro door moet.
Is er een manier om dit sneller te doen?
-----------------------------------------
Dim Cel As Range
Dim Werkblad As Worksheet
Dim Kolommen As Range
' Referentie naar het actieve werkblad
Set Werkblad = ActiveSheet
' Schakel de beveiliging van het werkblad uit
Werkblad.Unprotect
' Sorteer de kolommen A tot en met G
Werkblad.Columns("A:G").Sort Key1:=Werkblad.Range("A1"), Order1:=xlAscending, Header:=xlYes
' Definieer het bereik van kolommen A tot en met G
Set Kolommen = Werkblad.Range("A2:G5000")
' Loop door elke cel in de opgegeven kolommen
For Each Cel In Kolommen
' Controleer of de cel een waarde heeft (niet leeg is)
If Cel.Value <> "" Then
' Vergrendel de cel
Cel.Locked = True
End If
Next Cel
' Activeer de beveiliging van het werkblad
Werkblad.Protect
ActiveWorkbook.Save
MsgBox "De gegevens zijn opgeslagen.", vbInformation
Range("A:A").Find("").Select
End Sub••••ˇˇˇˇ