[vba] Range definieren

Pagina: 1
Acties:
  • 411 views sinds 30-01-2008

  • Aristos
  • Registratie: Oktober 1999
  • Laatst online: 18-12 13:48
Sub nullenverwijderen()
Dim rng As Range, i As Integer
Set rng = Range("c1:c1000")
For i = rng.Rows.Count To 1 Step -1
If rng.Cells(i).Value = "0" Then rng.Cells(i).EntireRow.Delete
Next
End Sub


mijn probleem is waarschijnlijk zeer simpel, maar dit is de eerste keer VBA voor mij en ik ben al blij dat ik zo ver ben gekomen....

Ik heb bovenstaande stuk code op GoT gevonden, nu wil ik alleen ipv c1:c1000 een soort flexibele range. Dus dit kan elke keer verschillen en hij moet gewoon de kolom C af tot er geen waarde 0 of 1 meer staat...

Dit is de eerste keer VBA voor mij en google kon ik niets bruikbaars vinden. Iemand een oplossing...

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Wat ik altijd doe is de rows opslaan voor mijn iteratie en dat doe ik als volgt:
Visual Basic:
1
2
 Range("C1").Select
 iAantalRijen = Selection.End(xlDown).Row - 1

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • KingRichard
  • Registratie: September 2002
  • Laatst online: 21-03 22:06

KingRichard

former Duke of Gloucester

[mierenneukmodus]
Cellen selecteren in VBA is lelijk. :9
Visual Basic:
1
2
3
4
5
6
7
Sub nullenverwijderen()
Dim rMax As Integer, r As Integer
rMax = Range("C:C").SpecialCells(xlCellTypeLastCell).Row
For r = rMax To 1 Step -1
    If Cells(r, 3).Value = "0" Then Cells(r, 3).EntireRow.Delete
Next
End Sub
[/mierenneukmodus] :Y)

a horse! a horse! my kingdom for a horse! (exeunt)
[got.profile] | [t.net.profile] | [specs]


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

VBA in software algemeen is lelijk. :)

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • Aristos
  • Registratie: Oktober 1999
  • Laatst online: 18-12 13:48
Zoals gezegd heb ik nul komma nul verstand van VBA, als ik de code bekijk snap ik hem ook niet helemaal. Maar de code van King Richard werkt prima, topic kan dicht

  • Aristos
  • Registratie: Oktober 1999
  • Laatst online: 18-12 13:48
Ok, als hij open blijft, heb ik nog een vraag:

Iets je verder heb ik een simpele makro die eerst een formule maakt en die vervolgens naar beneden "sleept"

Selection.AutoFill Destination:=Range("C2:C10000"), Type:=xlFillDefault
Range("C2:C10000").Select

Nu gaat mijn data maar ergens tot in de 5000, alleen weet ik niet precies waar. Dat kan iedere keer verschillen. Hoe kan ik dit instellen. Dus iets van "Range is ("C2:Cx") zolang Bx een waarde heeft..

Iemand?

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Aristos schreef op donderdag 20 april 2006 @ 15:45:
Ok, als hij open blijft, heb ik nog een vraag:
Van iemand met meer dan 1000 posts had ik dit niet verwacht. Topics gaan *niet* op slot omdat er een bevredigend antwoord op gekomen is. Topics gaan op slot omdat ze dreigen te ontsporen.

Roepen om een slotje is *not done*. Niet als je topicvraag beantwoord is, en ook niet als jij vindt dat en topic om een andere reden maar dicht zou moeten.
Iets je verder heb ik een simpele makro die eerst een formule maakt en die vervolgens naar beneden "sleept"

Selection.AutoFill Destination:=Range("C2:C10000"), Type:=xlFillDefault
Range("C2:C10000").Select

Nu gaat mijn data maar ergens tot in de 5000, alleen weet ik niet precies waar. Dat kan iedere keer verschillen. Hoe kan ik dit instellen. Dus iets van "Range is ("C2:Cx") zolang Bx een waarde heeft..

Iemand?
Uit het feit dat een topic open is volgt niet dat er dan maar een ander onderwerp aangesneden moet worden. Zelfs al is het je eigen topic. Nu ontspoort het topic alsnog, want er dreigt een discussie te ontstaan die niets met de titel van doen heeft.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland

Pagina: 1

Dit topic is gesloten.