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

Rijen verwijderen.

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

Sbob

Nieuwe gebruiker
Lid geworden
8 aug 2013
Berichten
2
Hallo allemaal,

Ik ben op zoek naar een formule of macro die me toelaat om rijen te verwijderen.

Ik heb 2 lijsten uit ons systeem gehaald (Installaties, Onderhoudscontracten) die in kolom A een gemeenschappelijk nummer hebben.
Nu zou ik graag in de Installaties enkel de rijen willen overhouden waarvan het nummer in de onderhoudscontracten gevonden is.

Alvast bedankt.
 

Bijlagen

Ik heb op een 2e tabblad de eerste rij uit onderhoudscontracten neergezet. Hier moet hij uit zoeken

Vervolgens op het eerste tabblad een extra hulpcelletje toegevoegd met daarin
Code:
=ALS(AANTAL.ALS(Blad2!A:A;A2)=0;"weg";AANTAL.ALS(Blad2!A:A;A2))
En dan dubbelklik op het hoekje om hem helemaal naar beneden te sturen


Vervolgens zijn er 2 manieren
1. een filter toevoegen en dan alles met "weg" verbergen

2. macro om alles met "weg"in kolom B weghalen

Code:
Sub lege_weghalen()

  
Dim i As Long
 
With ActiveWorkbook.Sheets(1)
 
    For i = 10000 To 2 Step -1
 
        If .Cells(i, "B") = "weg" Then
 
            .Cells(i, "B").EntireRow.Delete
 
        End If
 
    Next i
 
End With
 
End Sub

Ik heb daar destijds de bovenstaande vba code voor gevonden
Dit is echter best een traag proces als je echt alle 10000 regels wil checke is hij wel even bezig dus hou daar rekening mee

als je geen kolom toe wil voegen zul je in plaats van .Cells(i, "B") = "weg" Then op de eenofandere manier een de als formule moeten toevoegen om te testen of die al bestaat.
Dat soort dingen ben ik echter niet zo goed in dat ik dat erbij kan verzinnen


In de bijlage je bestandje
heb wel wat regels en kolommen moeten verwijderen want hij werd te groot om hier te uploaden
Bekijk bijlage Installaties.xls
 
Als je na de regel met Dim het volgende zet:
Application.ScreenUpdating = False
zul je zien dat hij heel wat sneller werkt.
Wel even net voor de End Sub hetzelfde weer op True zetten.
 
Doet het perfect :thumb:.
Hartelijk bedankt voor de hulp
 
Code:
=ALS(AANTAL.ALS(Blad2!A:A;A2)=0;0;AANTAL.ALS(Blad2!A:A;A2))

Code:
Sub simpel()
    t = Timer
    With Columns(2)
        .Value = .Value
        .Replace 0, ""
        .SpecialCells(4).EntireRow.Delete
    End With
    MsgBox Timer - t
End Sub

Met bovenstaande formule in kolom B en Macro Simpel krijg ik de klus geklaard in 7 sec. Dit voor 13000 rijen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan