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

Excel rijen automatisch verwijderen met macro

Status
Niet open voor verdere reacties.

martins wwa

Gebruiker
Lid geworden
6 nov 2008
Berichten
18
Hallo allemaal,

Een tijd geleden heb ik een vraag geplaatst hoe je het beste met macro's een rij kan verbergen als een cel aan een bepaalde voorwaarde voldoet of niet.
Als een bepaalde cel leeg is (bv B2) dan moet zelfde rij (2) dus verwijderd worden.


Nu komt het beter uit de rij niet te verbergen maar te verwijderen.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If [B2].Value = "" Then
Rows("2").EntireRow.Remove = True
Else
Rows("2").EntireRow.Remove = False
End If
If [B3].Value = "" Then
Rows("3").EntireRow.Hidden = True
Else
Rows("3").EntireRow.Hidden = False
End If


Zo was deze opgebouwd. Nu wilde ik Hidden vervangen door "remove". Maar zo makkelijk gaat dit blijkbaar niet. (sorry ben hier nog niet erg ervaren mee). Iemand die mij op een makkelijke manier kan helpen.?

Alvast erg bedankt!

Gr. Martijn
 
Laatst bewerkt:
Hoi Jack!

Dat is stom!! Inderdaad.

Maar helaas niet de oplossing. Als ik "hidden" vervang door "delete" zegt die:

Fout 1004 tijdens uitvoering:

Eigenschap Delete van klasse Range kan niet worden ingesteld
 
Hoi,
Zoiets mischien?
Code:
Sub dotchie()
Dim lRow As Long
Dim iCntr As Long

lRow = Sheets("Uw blad naam").Range("B60000").End(xlUp).Row
' Hier 60000,Range aanpassen naar uw behoeften
' Uw blad naam = hier de naam van uw werkblad invullen

For iCntr = lRow To 1 Step -1
    If Cells(iCntr, 2) = "" Then
        Rows(iCntr).Delete
    End If
Next
End Sub
Groet
Ps: probeer in het vervolg uw code tussen tags te zetten en post bij voorkeur een vbtje
 
Je kunt best eens vertellen hoe je werkblad er uit ziet.
Rijen verwijderen op grond van een selectie en dat ook nog laten gelden voor het gehele blad, dat lijkt me nou niet bepaald aan te bevelen.
Zoals je het nu aanpakt is ook om een andere reden niet wenselijk.
Zodra je rij 2 verwijdert, is rij 3 van je macro niet meer rij 3 in het blad, maar rij 2; je kunt dat verwijderen dus best van onderaan beginnen.
Ik heb onlangs op dit forum nog een oplossing gegeven voor het verwijderen van rijen.
 
Bedankt voor de snelle reacties. Waardeer dat enorm. Hierbij een voorbeeld bestandje om het een en ander te verduidelijken

Ik wil eigenlijk hetzelfde effect alleen dan met delete ipv hidden
 

Bijlagen

Als je nou even de moeite had gedaan om de macro op te sporen die ik onlangs op dit forum plaatste, dan had je de oplossing al gehad. Die van gast0660 kun je natuurlijk ook gebruiken.
 
Ik heb wat oude topics bekeken maar vind het qua codering toch erg lastig om toe te passen op mijn document. Heb te weinig kennis van macro's merk ik. Is er iemand die het voor mij voor kan doen in mijn voorbeeld Excel? Hier zou ik erg mee geholpen zijn


Mvg Martijn
 
Je formules komen ook door elkaar op die manier.
Hier zonder formules.
Maak kolom A van blad 'verwijzing' leeg.
Zet onderstaande code achter blad 'verwijzing'.
Bij een bladverwisseling van bron naar verwijzing blijven alleen de cellen die gevuld zijn over.

Code:
Private Sub Worksheet_Activate()
Dim x
If Me.Name = "verwijzing" Then
  x = Array("Bron", "Verwijzing")
    Sheets(x).FillAcrossSheets _
    Sheets("bron").Columns(1), 2  'of -4104
    Columns(1).SpecialCells(4).Delete
    Application.Goto [a1]
 End If
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan