Code is erg langzaam, kan dit sneller?

  • Onderwerp starter Onderwerp starter eyeye
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

eyeye

Gebruiker
Lid geworden
17 dec 2012
Berichten
42
Hallo forum leden,

Ik heb een code herschreven omdat ik er een variabel bereik in wilde. Echter de oude is snel en de nieuwe erg langzaam, maar wel met een variabel bereik. Kan iemand mij helpen deze code te versnellen in de variabel vorm?

Dit is de nieuw langzaam variabele code:
Code:
Sub Beginletters()

C = ThisWorkbook.Sheets("Dashboard").Range("B2").Value ' bovenste regels
x = Range("A" & Rows.Count).End(xlUp).Row 'laatste regel

Set workrange = ThisWorkbook.Sheets("planning").Range("A:A")
    ThisWorkbook.Sheets("planning").Activate


      For Each D In Range(Cells(C, 1), Cells(x, 1))
         D.Value = LCase(D.Value): D.Value = StrConv(D.Value, vbProperCase)
      Next
 
End Sub

Dit was de oude snelle niet variabele code:

Code:
Sub Beginletters()

 Set workrange = ThisWorkbook.Sheets("planning").Range("A:A")
    ThisWorkbook.Sheets("planning").Activate

[A1:A1200] = [index(lower(A1:A1200),)]
    
    Dim D As Range
         For Each D In Range("A1:A1200")
            Select Case D.Value
                 Case LCase(D.Value): D.Value = StrConv(D.Value, vbProperCase)
            End Select
    Next D
    
End Sub

Wie weet de oplossing?

met vriendelijke groet,
Eyeye
 
Probeer deze eens:

Code:
Sub Beginletters()

C = ThisWorkbook.Sheets("Dashboard").Range("B2").Value ' bovenste regels
x = Range("A" & Rows.Count).End(xlUp).Row 'laatste regel

Set workrange = ThisWorkbook.Sheets("planning").Range("A:A")
    ThisWorkbook.Sheets("planning").Activate

      Application.ScreenUpdating = False
      For Each D In Range(Cells(C, 1), Cells(x, 1))
         D.Value = LCase(D.Value): D.Value = StrConv(D.Value, vbProperCase)
      Next
      Application.ScreenUpdating = True

End Sub
 
of:

Code:
Sub M_snb()
    [a1:a3000] = [if(A1:A3000="","",proper(lower(A1:A3000)))]
End Sub
 
Ik heb de vraag al op beantwoord gezet maar het antwoord van SNB is nog veeel sneller!
Bedankt!
 
Yep, da's een mooie :D
 
en je kunt nog wel even vooruit denk ik (met 3000 rijen))
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan