Cellen leeg maken

Status
Niet open voor verdere reacties.

Ben1956

Gebruiker
Lid geworden
18 dec 2006
Berichten
26
Hallo,
Ik heb een stukje vba code waarvan ik me afvraag of het sneller en handiger kan.
Er staan formules in de cellen G2 t/m N2. In N2 staat de formule: =ALS(G2-H2>0;G2-H2;"")
In een vba procedure kopieer ik dat naar alle rijen die van toepassing zijn (laatste rijnummer staat in variabele x).
Range("G2:N2").Copy Range("G3", Cells(x, "N"))
Columns("G:N").Copy
Columns("G:N").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False

Als de waarde in kolom G gelijk is aan de waarde in kolom H, dan moet de cel leeg zijn, maar dat is het niet. Het is een cel met een string met lengte 0.
Om die weg te halen gebruik ik een lus
For y = 2 To x
If Len(Cells(y, "N")) = 0 Then Cells(y, "N").ClearContents
Next y

Dat is nogal omslachtig en mijn vraag is: kan dit sneller/handiger?
Het is dus niet de bedoeling dat er een uitkomst 0 in komt te staan.
 
Ik zou zo zeggen, en ik ben zo te zien niet de enige die dat denkt: waar blijft het bestandje?
 
Het is een bestand van ruim 24 mb, dus het leek me handiger alleen het stukje te plaatsen waar het om gaat.
 
Dat is nogal omslachtig en mijn vraag is: kan dit sneller/handiger?

Allereerst lijkt het mij handiger om alle berekeningen in het geheugen uit te voeren en niet eerst door formules te plakken en dan om te zetten in waarden.
Maar dan is het handig zoals reeds gemeld om daar een voorbeeldje bij te maken, gaat nml enkel om de formules in G2-N2
Dat laatste loopje zou je ook middels
Code:
Range("N:N").SpecialCells(xlCellTypeConstants, 2).ClearContents
kunnen ondervangen
 
Het is een bestand van ruim 24 mb, dus het leek me handiger alleen het stukje te plaatsen waar het om gaat.
Een klein deel ervan met wat data is al genoeg hoor. Als we maar kunnen zien wat er moet gebeuren.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan