• 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 in ander tabblad mbv macro

Status
Niet open voor verdere reacties.

Vlens

Gebruiker
Lid geworden
2 apr 2014
Berichten
15
Dag,

Ik heb een vraag. In bijlage een document met op verschillende tabbladen een lijst om in te vullen. Tabblad 5 bevat de hele lijst, tablad 1 tot en met 4 behandelt telkens een onderdeel van de hele lijst.

vb.

tabblad 1: onderdeel 1 van lijst
tabblad 2: onderdeel 2 van lijst
tabblad 3: onderdeel 3 van lijst
tabblad 4: onderdeel 4 van lijst
tabblad 5: onderdelen 1-4 onder elkaar

Er dient in de rij 'van toepassing' met ja of nee geantwoord te worden. Indien er 'nee' geantwoord wordt zou ik graag hebben dat de overeenkomstige rij in tabblad 5 (de volledige lijst dus) verwijderd wordt. Bijgevolg heb je in tabblad 5 enkel de rijen die wel van toepassing zijn. Er dient enkel op de vraag 'van toepassing' geantwoord te worden in tabblad 1-4 zodat het resultaat in tabblad 5 komt te staan.

Wat zou hier een geschikte macro voor zijn? Ik ken er heel weinig van dus ik zit een beetje vast. Een probleem lijkt me ook dat de rij in tabblad 1-4 qua nummering nu niet meer overeenkomt met de volledige lijst uit tabblad 5 omdat er telkens andere onderdelen van behandelt worden.

Is mijn vraag duidelijk genoeg?


Bekijk bijlage kijkwijzer excel.xlsx
 
De nummering zal inderdaad dan niet overeenkomen. Maar welke informatie moet dan als unificerend worden beschouwd? Dus van welke cellen in tabblad 1-4 moet de inhoud overeenkomen met cellen in tabblad 5 om te bepalen dat het de bedoelde rij is?
 
Ik zal een voorbeeld geven!

tabblad 2 - rij 8: antwoord 'nee' bij kolom 'van toepassing'! Dan mag in tabblad 5 rij 44 verwijderd worden.

Eigenlijk stemt tabblad 1: bereik rij 8 -37 overeen met tabblad 5: bereik rij 8 - 37
tabblad 2: bereik rij 8 -57 met tabblad 5 bereik rij 44 - 93
tabblad 3: bereik rij 8 - 52 met tabblad 5 bereik rij 101 - 145
tabblad 4: bereik rij 8 -58 met tabblad 5 bereik rij 153 - 203

Is dit iets duidelijker?

Bedankt!
 
Dit is toch zoiezo mogelijk lijkt me? Gewoon even voor de zekerheid want ik zou dat moeten doorgeven aan mijn promotor!

Met vriendelijke groeten
 
In tabblad 5 staan eigenlijk juist dezelfde rijen als in de tabbladen ervoor maar tabblad 1-4 behandeld telkens slechts één gedeelte van tabblad 5. Het is eigenlijk gewoon de bedoeling dat mensen in tabblad 1-4 kunnen aanduiden wat van toepassing is of niet. Wat niet van toepassing is moet uit de algemene lijst op tabblad 5 verdwijnen (dus de overéénkomstige rij mag verwijderd worden) zodat enkel de 'van toepassing' zijnde rijen overblijven! bedoel je dit?
 
Dat er de dezelfde rijen staan zie ik ook wel. Maar als je een leeg bestand plaatst is het een beetje lastig beoordelen wat je nu eigenlijk wil. De tabjes 1 t/m 4 worden afzonderlijk behandeld. En dan hoe komt het in blad 5 terecht? Blad5 is in mijn optiek afhankelijk van de waarden in de eerst 4 tabjes. Of is de inhoud overal hetzelfde en alleen "Van toepassing" variabel?
 
Sorry, dat had ik dus verkeerd verstaan! Ik heb het bestand leeggemaakt omdat het een eindwerk betreft en ik dat liever nog niet online zet met inhoud! De inhoud is inderdaad overal hetzelfde!

Dus bijvoorbeeld:

tabblad 2 rij 9 staat 'vermoeidheid'. In tabblad 5 rij 45 staat ook 'vermoeidheid'. Afhankelijk van wat er bij 'van toepassing' ingevuld wordt in tabblad 1-4, zal de overeenkomstige rij in tabblad 5 verwijderd worden (indien 'nee') of blijven staan (indien 'ja'). Tabblad 5 is dus gewoon de vorige tabbladen samengebracht met identiek dezelfde inhoud. Tabblad 5 wordt bijgevolg niet ingevuld, maar gewoon gereduceerd tot de rijen die van toepassing zijn!

gemakkelijkheidshalve zal ik volgende hier nog eens zetten:

Stemt overeen:

tabblad 1: bereik rij 8 -37 met tabblad 5: bereik rij 8 - 37
tabblad 2: bereik rij 8 -57 met tabblad 5 bereik rij 44 - 93
tabblad 3: bereik rij 8 - 52 met tabblad 5 bereik rij 101 - 145
tabblad 4: bereik rij 8 -58 met tabblad 5 bereik rij 153 - 203
 
De benoemde bereiken kloppen niet met de opmaak.

Probeer deze eens
Code:
Sub tst()
With Sheets("blad5")
    For Each cl In Sheets("Blad1").Range("B8:B39")
        If UCase(cl) = "NEE" Then .Rows(cl.Row).EntireRow.Delete
    Next cl
    For Each cl In Sheets("Blad2").Range("B8:B60")
        If UCase(cl) = "NEE" Then .Rows(cl.Row + 36).EntireRow.Delete
    Next cl
    For Each cl In Sheets("Blad3").Range("B8:B55")
        If UCase(cl) = "NEE" Then .Rows(cl.Row + 93).EntireRow.Delete
    Next cl
    For Each cl In Sheets("Blad4").Range("B8:B61")
        If UCase(cl) = "NEE" Then .Rows(cl.Row + 145).EntireRow.Delete
    Next cl
End With
End Sub

Of iets korter
Code:
Sub tst1()
Dim ar(0, 36, 93, 145)
With Sheets("blad5")
    For i = 1 To 4
        For Each cl In Sheets(i).Range("B8:B61")
            If UCase(cl) = "NEE" Then .Rows(cl.Row + UBound(ar, i)).EntireRow.Delete
        Next cl
    Next i
End With
End Sub
 
Laatst bewerkt:
Rijen verwijderen doe je van onderaf.
 
Da's waar ook:eek: Niet helemaal waar maar dan moet er een teller meelopen die "weet" waar je gebleven bent.
 
Dus, wat zou het gemakkelijkst zijn?
 
Jij bent meer specialist hierin dan ik, dus laat maar zien. Graag beide opties. Dommer kan ik er niet van worden.
 
De i van 4 naar 1 met Step -1? ;)
 
Ik dacht de 'for each' veranderen in for x = 61 to 8 step - 1, en dan de rest van de code aanpassen, maar ik heb niet naar het bestand gekeken.

Edit: de code beter bekeken, de i staat voor bladnummering en de arrayargument, dus de 'for i = 1 to 4' mag van mij blijven staan zoals die is.
 
Laatst bewerkt:
Nu kan ik helemaal niet meer volgen :D! Dus de code dient aangepast te worden?
 
Edit: de code beter bekeken, de i staat voor bladnummering en de arrayargument, dus de 'for i = 1 to 4' mag van mij blijven staan zoals die is.

Je hebt gelijk.
Ik heb dus niet goed gelezen.
Zonnesteek wellicht :p
 
En nog even de goede oplossing. Dus van onderaf de rijen verwijderen.
 
Eén dag mooi weer, en ..... :p

De code kan @V&A nu wel aanpassen denk ik met de ingredienten zoals vermeld.
 
Dat heeft 'ie in #15 al gedaan maar misschien nog even uitschrijven voor Vlens.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan