Rij invoegen binnen If... Then als waarde ongelijk is aan cel erboven

Status
Niet open voor verdere reacties.

Laura23

Gebruiker
Lid geworden
22 nov 2006
Berichten
26
Ik ben bezig met een macro voor Excel, waarin in een regel toe wil voegen als de cel waarin ik zit ongelijk is aan de cel erboven.

Het bestand zien er bijvoorbeeld zo uit:
Kolom 8 Kolom 9
Jansen 8
Jansen 7
De vries 6
De Jong 6
De Jong 6
De Jong 9

Tussen Jansen en de Vries moet een regel komen, en tussen De Vries en de Jong ook (zodat ik daarin de subtotalen van de getallen erachter kan optellen, per persoon). Ik ben hiermee begonnen als If... then, maar ik kom niet verder dan:

For rij = 2 To aantal_regels
If Cells(rij, 8).Value = Cells(rij + 1, 8) Then
rij = rij + 1
ElseIf Cells(rij, 8).Value <> Cells(rij + 1, 8) Then
Cells(rij, 8).EntireRow.Select
Selection.Insert shift:=xlUp
End If

Next rij

Maar dit werkt dus niet (sowieso omdat ik niet weet hoe ik aan moet geven ongelijk aan, i.p.v. <>).

Heeft iemand een idee? Hartstikke bedankt!
 
Laura,

een paar dingen vallen meteen op:
- je hebt geen aantal_regels gedefinieerd in het voorbeeld. Hij stopt dus meteen
- laat het .value een weg bij de eerste cel
- rij = rij+1 is overbodig want rij zit in je for loop
- <> is toch wel ongelijk aan

Dat zijn een paar eerste tips

Ron
 
He Ron,

Alvast super bedankt, ik kwam er een eind verder mee. Maar het probleem is, als ik ergens geen rij = rij + 1 invoer, dat de macro na 'next rij' verdergaat in de lege (net toegevoegde rij), en daar dan dus tot het oneindige rijen toevoegt. Ik heb nu het volgende (aantal_regels = sh.Range("A1").CurrentRegion.Rows.Count, was ik er net vergeten bij ze zetten)

For rij = 3 To aantal_regels
If Cells(rij, 8) = Cells(rij - 1, 8) Then
ElseIf Cells(rij, 8) <> Cells(rij - 1, 8) Then
Cells(rij, 8).EntireRow.Select
Selection.Insert shift:=xlUp
End If

Next rij

Dit werkt goed, totdat de eerste regel is ingevoerd. Enig idee hoe ik dan naar de volgende gevulde regel kan gaan?

Laura
 
Gevonden!

For rij = 3 To aantal_regels
If Cells(rij, 8) = Cells(rij - 1, 8) Then
ElseIf Cells(rij, 8) <> Cells(rij - 1, 8) Then
Cells(rij, 8).EntireRow.Select
Selection.Insert shift:=xlUp
rij = rij + 1
End If

Next rij
 
Laura, wil je in het vervolg code tags plaatsen rondom jouw code? Dan komt de code in een apart venstertje te staan en is het veel beter leesbaar. Bedankt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan