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

Lege cellen verwijderen met macro

  • Onderwerp starter Onderwerp starter jovdo
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

jovdo

Gebruiker
Lid geworden
25 jan 2009
Berichten
29
Beste mensen,

ik ben op zoek naar een macro die van een selectie rijen verwijderd waar lege cellen in zitten. De macro activeer ik met een knop. Er bevinden zich wel formules in de cellen maar de waarde is "".

Iemand een suggestie?

Alvast bedankt.
 
Hoi Jovdo,

Je geeft niet aan wat je precies wil hele rij verwijderen of alleen de cel waar "" in staat. Bedoel je met verwijderen het weghalen van de rij of het legen van de rij, zodat de tekst uit de cellen verdwijnt.

De code:
For Each cell In Range("A11:K50")
If cell = "" Then
If Range("D1") = 1 Then cell.Delete Shift:=xlUp
If Range("D1") = 2 Then cell.Delete Shift:=xlToLeft
If Range("D1") = 3 Then cell.ClearContents
If Range("D1") = 4 Then Rows(cell.Row).Delete
End If
Next cell

Bij code 1 wordt de cellen naar boven doorgeschoven, bij 2 opgevuld vanuit de rij, bij 3 wordt de inhoud van de cel gewist *(er blijft een lege cel over) en bij 4 wordt de complete rij verwijderd.

Hopelijk kun je hier wat mee

Groet,

Jeroen
 
Hoi Jovdo,

Je geeft niet aan wat je precies wil hele rij verwijderen of alleen de cel waar "" in staat. Bedoel je met verwijderen het weghalen van de rij of het legen van de rij, zodat de tekst uit de cellen verdwijnt.

De code:
For Each cell In Range("A11:K50")
If cell = "" Then
If Range("D1") = 1 Then cell.Delete Shift:=xlUp
If Range("D1") = 2 Then cell.Delete Shift:=xlToLeft
If Range("D1") = 3 Then cell.ClearContents
If Range("D1") = 4 Then Rows(cell.Row).Delete
End If
Next cell

Bij code 1 wordt de cellen naar boven doorgeschoven, bij 2 opgevuld vanuit de rij, bij 3 wordt de inhoud van de cel gewist *(er blijft een lege cel over) en bij 4 wordt de complete rij verwijderd.

Hopelijk kun je hier wat mee

Groet,

Jeroen

Beste Jeroen,

Bedankt, ik bedoelde optie 1. Even vanavond kijken kijken of het werkt en dan sluit ik hem af.

Als je het stukje code zo terug leest is het goed te begrijpen. Kun je simpel uitleggen wat die "D1" betekend?

Hartstikke bedankt!!
 
Laatst bewerkt:
Hoi jovdo,

D1 is slechts een hulp cel om de verschillende keuzes duidelijk te maken.

For Each cell In Range("A11:K50")
If cell = "" Then cell.Delete Shift:=xlUp
Next cell

Zo is het een stukje overzichtelijker (en doet wat het moet doen).

Groet,
Jeroen
 
Wil je met een loop regels verwijderen dan werk je steeds van beneden naar boven om fouten (lees overgeslagen regels) te vermijden.
 
Wil je met een loop regels verwijderen dan werk je steeds van beneden naar boven om fouten (lees overgeslagen regels) te vermijden.

Beste warme bakkertje,

Ik snap wat je bedoeld, maar hoe boks ik dat voor elkaar?

Alvast bedankt.
 
Hoi jovdo,

D1 is slechts een hulp cel om de verschillende keuzes duidelijk te maken.

For Each cell In Range("A11:K50")
If cell = "" Then cell.Delete Shift:=xlUp
Next cell

Zo is het een stukje overzichtelijker (en doet wat het moet doen).

Groet,
Jeroen

Beste Jeroen,

Sorry dat ik zo laat reageer maar heb het net even uitgeprobeerd, helaas nog niet voor elkaar. Het is al redelijk laat morgen even verder kijken waarom niet.

Bedankt!
 
bv. zoiets
Code:
Sub tst()
For i = [a1].CurrentRegion.Rows.Count To 1 Step -1
     If Range("A" & i).Value = "" Then
        Range("A" & i).EntireRow.Delete xlUp
    End If
Next
End Sub
 
bv. zoiets
Code:
Sub tst()
For i = [a1].CurrentRegion.Rows.Count To 1 Step -1
     If Range("A" & i).Value = "" Then
        Range("A" & i).EntireRow.Delete xlUp
    End If
Next
End Sub

Beste warme bakkertje,

Gelukkig zijn er geen domme vragen :)

Waar kan ik mijn bereik invullen? In mijn project is het bereik B14:F28.

Bedankt.
 
In welke kolom wordt er gecontroleerd op lege cellen ?
 
Dus als 1 van die cellen een lege waarde weergeeft moet de volledige regel verwijderd worden ?
 
Dus als 1 van die cellen een lege waarde weergeeft moet de volledige regel verwijderd worden ?

Beste Rudi,

Ik heb een werkblad uit de file gepakt waar het overgaat. Misschien heb ik een verkeerde benadering of zo, dat kan ook. Maar ik wil graag bereiken dat wanneer sommige regels niet ingevuld zijn in het bereik: B14:F28.

Ik hoop dat je me kunt helpen.

Groeten,

Joris
 

Bijlagen

Of zo, dan blijven de overige formules intact
Code:
Sub tst()
For i = 28 To 14 Step -1
     If Range("B" & i).Value = "" Then
        Range("B" & i).EntireRow.Delete xlUp
    End If
Next
End Sub
 
Of zo, dan blijven de overige formules intact
Code:
Sub tst()
For i = 28 To 14 Step -1
     If Range("B" & i).Value = "" Then
        Range("B" & i).EntireRow.Delete xlUp
    End If
Next
End Sub

Beste Rudi,

Hartstikke bedankt!!
Het werkt.

Ik zal het onderwerp sluiten.

Nogmaals bedankt voor het meedenken!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan