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

Loop met variabele range

Status
Niet open voor verdere reacties.

Masjimo

Gebruiker
Lid geworden
23 dec 2010
Berichten
165
In een spreadsheet wil ik een hele serie ranges regelmatig leeghalen.

Daarvoor heb ik de volgende VBA gemaakt:

Code:
Sub VerwijderenPersoneel()
    
    Dim i As Integer
    For i = 5 To 54
    Range(Column(i) & "11:" & Column(i + 6) & "52").Select
    Selection.ClearContents
    Next i
    Range("E11").Select

End Sub

De range die leeg gemaakt moet worden is E11:K52 als eerste, de volgende zijn iedere keer 8 kolommen verder; M11:S52 etc, etc.

Wat doe ik fout?
 
Hoi Masjimo,

Vrij simpel, je For... Next - lus loopt van 5 naar 54, na 5 komt 6. Als je 8 kolommen verder wilt moet je er For i=5 to 54 step 8 van maken

Groet,
Jeroen
 
De foutmelding wordt gegeven op de zin;

Code:
Range(Column(i) & "11:" & Column(i + 6) & "52").Select
:confused:

Hij haalt nu niets leeg....
 
Laatst bewerkt:
prober eens

Code:
range = cells(11 &i,52&i+6)

mvg
Leo
 
Ook niet...

Compileerfout
Verwacht lijstscheidingteken of )
 
Hoi Masjimo,

Ik had mij beperkt tot de 8 kolommen verder, deze code ( Range(Column(i) & "11:" & Column(i + 6) & "52").Select
Selection.ClearContents)vervangen door
Code:
Range(Cells(11, i), Cells(52, i + 6)).ClearContents
en hij loopt wel goed.

Jeroen
 
Laatst bewerkt:
heb hier niets testen maar er is zeker iets fout met bepalen range
moet op andere manier

al gevonden zie ik
 
Als het steeds om een verschuiving van vast aantal kolommen en rijen gaat kan je deze proberen.

Code:
Sub VerwijderenPersoneel()
For i = 0 To 2
    Range("E11").Offset(, (i * 8)).Resize(41, 7).ClearContents
Next i
End Sub
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan