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

Formule Datum loopt traag Excel

Status
Niet open voor verdere reacties.

DANIEL162

Terugkerende gebruiker
Lid geworden
24 feb 2011
Berichten
1.098
Zou het mogelijk zijn deze formule vlugger te laten werken.

Code:
For Each cl In Range("C9:C200" & ActiveSheet.UsedRange.Rows.Count)
        cl.Value = Format(cl, "dddd dd mmmm yyyy")
    Next cl


Cellen in kolom C9:C200 die leeg zijn moeten leeg blijven.

Groetjes, Daniel
 
Zoals gewoonlijk kan dat meer oorzaken hebben dan alleen dat stukje code.
Plaats dus een relevant voorbeeld document.
 
Spijtig ed kan deze zomaar niet vrijgeven. het zijn fabrieks- en personeelsgegeven die erop staan.
 
Ik vraag ook om een relevant voorbeeld, niet om de bedrijfsgeheimen.

Als er op dat werkblad ook een Worksheet_Change event wordt getriggert, zet deze dan eerst uit:
Code:
Application.EnableEvents = False
For Each cl In Range("C9:C200" & ActiveSheet.UsedRange.Rows.Count)
    If cl.Value > o Then cl = Format(cl, "dddd dd mmmm yyyy")
Next cl
Application.EnableEvents = True
 
Laatst bewerkt:
Code:
Private Sub CommandButton2_Click()
Unload Me  (kalender afsluiten)
Application.EnableEvents = False
For Each cl In Range("C9:C200" & ActiveSheet.UsedRange.Rows.Count)
    If cl.Value > o Then cl = Format(cl, "dddd dd mmmm yyyy")
Next cl
Application.EnableEvents = True
End sub

Het blijft traag lopen!
 
Zet dan ook ScreenUpdating uit:
Code:
Private Sub CommandButton2_Click()
Unload Me  (kalender afsluiten)
Application.ScreenUpdating = False
Application.EnableEvents = False
For Each cl In Range("C9:C200" & ActiveSheet.UsedRange.Rows.Count)
    If cl.Value > o Then cl = Format(cl, "dddd dd mmmm yyyy")
Next cl
Application.ScreenUpdating = True
Application.EnableEvents = True
End sub
 
Dat is het. De actie meteen uitgevoerd. Weer een sigaretje uitgespaard.
Bedankt ed
Groetjes, Daniel
 
Deze toevallig gevonden van Warme bakkertje
Werkt ook super! Zelfs zonder Application.ScreenUpdating.
Code:
Range("c9").Select

    lRow = Range("C" & Rows.Count).End(xlUp).Row
fRow = lRow
For i = lRow To 1 Step -1
    If InStr(Cells(i, 1), ".") > 0 Then fRow = fRow - 1
Next
For Each cl In Range("C" & fRow + 1 & ":" & "C" & lRow)
   
   cl.Value = Format(cl, "dddd dd mmmm yyyy")
Next
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan