Excel VBA of functie?

Pagina: 1
Acties:
  • 298 views

Vraag


Acties:
  • 0 Henk 'm!

  • Crxtreem
  • Registratie: Augustus 2007
  • Niet online
Mijn vraag

Ik heb een excel blad waarin ik graag op 2 kolommen wil filteren of cellen leeg zijn zodat deze rij verwijderd wordt.
Maar als er in 1 kolom iets staat mag de rij niet verwijderd worden.

Op 1 kolom lukt het wel met
Range("F5", Range("F65536").End(xlUp)).Cells.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Nu wil ik deze dus uitbreiden met kolom E waarin af en toe een cel gevuld is.
Als deze gevuld is mag deze rij ook niet verwijderd worden.
Hieronder een voorbeeldje hoe de cellen gevuld zijn.
N7

A

B


C

D
N8

E

F

G

H
Resultaat moet dan worden:
N7
A
B
C
D
N8
E
F
G
H
Als ik de regel 2x uitvoer verwijderd VBA te veel gegevens.
Kan ik een of functie of zoiets in VBA maken zodat hij ze eerst allebei bekijkt en dan pas verwijderd?

Alle reacties


Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

VBA: loopje maken die per regel kijkt of het leeg is en dan de rij verwijderd. Let op dat je na verwijderen de rij-teller niet verkeerd hebt staan.

Alternatief: ASAP Utilities ( O+ maar alleen gratis voor prive-gebruik) heeft er een standaardfunctie voor in het menu 'Kolommen en rijen'

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

  • breew
  • Registratie: April 2014
  • Laatst online: 21:09
Als je een loopje maakt die door de cellen loopt, dan is het het meest veilig om van benden naar boven te 'wandelen'... Als je een hele rij verwijderd, dan kan het, zoals @F_J_K al aangeeft, zijn dat cellen verschuiven en je daardoor cellen 'mist'..
Een andere oplossing is om de rijen niet direct te verwijderen, maar leeg te maken en vervolgens alle niet-lege rijen te selecteren, te knippen en te plakken.
Een derde oplossing is om de inhoud van de te werijderen cel te vervangen met "DEZERIJKANWEG", en vervolgens met Range.RemoveDuplicates, of een (advanced) filter, deze rijen weg te gooien.

zoeken op stackoverflow levert ook vaak veel soortgelijke ideeën op:
https://stackoverflow.com...duplicates-with-condition
https://stackoverflow.com...ased-on-multiple-criteria

[ Voor 17% gewijzigd door breew op 22-11-2017 14:25 ]


Acties:
  • 0 Henk 'm!

  • Atanamir
  • Registratie: December 2014
  • Laatst online: 08:23
VBA loopje is inderdaad simpel, maar als het slechts 1 werkblad is (en je cpu trekt bewerkingen qua grootte) dan is een hulpkolom maken ook zo gedaan.

Bijvoorbeeld kolom C = inhoud van A & inhoud van B
Vervolgens filteren op lege cellen in C en alle rijen in de selectie verwijderen...

Acties:
  • 0 Henk 'm!

  • Crxtreem
  • Registratie: Augustus 2007
  • Niet online
Dat wordt dan vanavond eens googlen op Loop's en kijken of ik het werkend krijg.

Acties:
  • 0 Henk 'm!

  • japie06
  • Registratie: Augustus 2008
  • Laatst online: 22:03
Je hebt ook nog de IsEmpty function in VBA zitten. Daarmee kan je checken of een range leeg is of niet, en geeft een WAAR of ONWAAR waarde terug.

voorbeeld:
code:
1
2
3
4
5
If IsEmpty(Range("A2").Value) Then
   doe dit
Else
    doe dat
End If

Acties:
  • 0 Henk 'm!

  • breew
  • Registratie: April 2014
  • Laatst online: 21:09
japie06 schreef op woensdag 22 november 2017 @ 15:20:
Je hebt ook nog de IsEmpty function in VBA zitten. Daarmee kan je checken of een range leeg is of niet, en geeft een WAAR of ONWAAR waarde terug.

voorbeeld:
code:
1
2
3
4
5
If IsEmpty(Range("A2").Value) Then
   doe dit
Else
    doe dat
End If
Let er dan wel op dat formules, spaties, en andere tekens die je niet 'ziet', er voor kunnen zorgen dat een cel leeg lijkt, maar dat niet is.

Acties:
  • 0 Henk 'm!

Verwijderd

Hallo allemaal, ik weet niet of het hier mag,maar hoe start je een topic, of hoe stel je een vraag ?

Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

@Verwijderd bedenk eerst wat het best passende subforum is. Ik ga er van uit dat het gaat over Excel, dus dan je kunt bovenaan Client Software Algemeen op Nieuw topic drukken. Selecteer 'Ik wil een vraag stellen' en vul alle relevante info in.

Vergeet niet dat je duidelijk wilt aangeven wat je hebt geprobeerd, waar je vastliep. Zie ook Het algemeen beleid #topicplaatsen :)

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)

Pagina: 1

Dit topic is gesloten.