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

Vind waarde in range en delete de regel

Status
Niet open voor verdere reacties.

Cees1951

Gebruiker
Lid geworden
13 nov 2006
Berichten
40
Hallo,

Ik raadpleeg Helpmij vaak en hoef zelden iets te vragen. Maar nu wel. Want hoe ik ook zoek, ik kan NET niet de macro vinden die doet wat ik wil, nl:

Vind alle waarden uit een range die groter zijn dan 0 (nul) en delete vervolgens de hele regel.

Dat moet waarschijnlijk met een loop while opdracht, maar mij lukt het niet.
Kan iemand mij op weg helpen svp?

zie mijn verkorte bijlage

Alvast dank en groet
Cees1951
.
 

Bijlagen

Cees1951, Eigenlijk heb je hier helemaal geen macro bij nodig... Je kan dit regelen via filteren op het veld van je keuze met de waarde nul. Daarna de gefilterde regels deleten en klaar ben je.

Groet, Leo
 
Dag Leo,

Dank. Maar nee: het moet AUTOMATISCH gaan want is onderdeel van een veel groter programma in VB. (Dwz als ik dat stukje code heb, plak ik dat in een groter programma).
Dus...
Heel graag!

Groet
Cees
 
Code:
with Columns(3)
  .AutoFilter
  .AutoFilter 1, ">0"
  .SpecialCells(xlCellTypeVisible).EntireRow.Delete
end with
 
Laatst bewerkt:
Dag snb,

Had niet gedacht dat de oplossing van mijn probleempje gevonden kon worden met het toepassen van het filter! Maar als iets werkt, dan werkt het, zeg ik maar.
Ik heb je voorbeeld toegepast en uit de range (genaamd "Testrange") delete hij keurig wat weg moet en laat staan wat moet blijven staan.
Blijft een vervelend dingetje over: hij haalt ook regels weg bovenin het tabblad. In dit geval de bovenste 2.
Kan dat voorkomen worden? En waar staat die 3 voor? (tussen haakjes achter column)

Kan je nog even kijken en antoorden svp?
 
Die 3 slaat op de 3e kolom (kolom C).
Ik dacht dat je met mijn hint de laatste hobbel zelf wel zou kunnen nemen.
 
Dag snb,
Heb geen hint gezien, hoor! Waar dan?
Dat die 3 op de derde kolom slaat, had ik ook bedacht. Ik bedoelde ermee te vragen of ik daar wellicht iets anders moet neerzetten zodat niet OOK regels BUITEN de range worden gedeleted.
Als je begrijpt wat ik bedoel.
 
Dag snb en andere lezers,
Na enig gepuzzel ben ik er uit:

Sub test()
' het verwijderen van de gehele regel als waarde in range > 0
With Range("Testrange")
.AutoFilter
.AutoFilter 1, ">" & 0
.SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
'na dit deel verdwijnt het filtertje vanzelf.

'Omdat de regels met een 0 (nul) of met een "" (blank) verborgen moeten worden:
With Range("Testrange")
.AutoFilter
.AutoFilter 1
.SpecialCells(xlCellTypeVisible).EntireRow.Hidden = True
End With

'na dit deel blijft het filtertje staan. (Waarom weet ik niet). Daarom:
Selection.AutoFilter

End Sub

Ik geef het toe: ik weet niet precies wat ik aan het doen ben en of deze VBA in aanmerking komt voor de schoonheidsprijs van het jaar. MAAR HET WERKT!

Wat mij betreft case closed.

Dank!
 
Je laatste bericht vertoont wel enige discrepantie met je aanvankelijke vraag en de titel van deze draad.

Als je alle regels met een lege cel in een bepaalde kolom wil verbergen doe je dat het eenvoudigst met

Code:
[COLOR="Blue"]Sub onzichtbaar()
  columns(3).specialcells(xlcelltypeblanks).entirerow.hidden = true
End Sub[/COLOR]

Daarvoor kan het handig zijn eerst in alle cellen met een 0-waarde de 0 te vervangen door een "".
Code:
columns(3).replace 0,""
 
Laatst bewerkt:
Dag snb,
Je opmerking over discrepantie klopt: aanvankelijk had ik er niet bij gezegd dat de resterende regels verborgen moesten worden. (Wist ik op dat moment ook nog niet; 'voortschrijdend inzicht', zullen we maar zeggen).

Dank voor je laatste toevoeging. Wordt de vba iets mooier van!

Ik sla dit op in mijn folder 'Handige Exceltruukjes').

Groet en over en uit (althans wat deze topic betreft)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan