• 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 kopieren op basis van waarde(n) in tabblad

Status
Niet open voor verdere reacties.

rickb1977

Gebruiker
Lid geworden
2 dec 2015
Berichten
53
Voor mijn werk krijg ik regelmatig vrij grote exportbestanden waaruit ik een selectie wil kopiëren naar een ander tabblad.
Nu kan ik dit doen door middel van de autofilter maar het zou sneller en gemakkelijker zijn dit te doen met een macro. (zeker omdat ik dit meerdere keren per week moet doen)
Welke selectie ik wil kopiëren wil nog weleens wijzigingen.

Het leek mij daarom een goede optie om op een tabblad de zoektermen te kunnen vermelden op basis waarvan de selectie plaatsvind.
In het voorbeeldbestand zou ik dan in de tab "Export" de bulk aan gegevens willen plakken waarna in de tab "resultaat" alle rijen gekopieerd worden waarin het nummer overeenkomt met de termen in de tab "zoekterm"

Hoe kan ik dit het beste aanpakken? Alvast bedankt voor jullie adviezen.
 

Bijlagen

De methode van arnoo7 werkt het beste voor mij omdat ik dan meerdere waarden tegelijk kan selecteren.
Bedankt voor beide reacties! Hiermee kan ik vooruit.
 
Mooi, opgelost. Je moet tussen de zoektermen geen blanco cellen stoppen. Als dit wel kan gebeuren (maar lijkt mij niet logisch) moet de range zoektermen wat anders gedefinieerd worden. Verder moet de kolomnaam (Nummer) in het tabblad Zoektermen corresponderen met kolomnaam in het tablbad Export. Maar dat is ook wel logisch.

Succes!
 
Toch nog een aanvullende vraag: in het echte exportbestand staan veel meer kolommen dan hier in het voorbeeldbestand weergegeven wordt.
De nummers waarop gefilterd wordt staan in kolom A (en de waarden in kolom B). Ik echter graag ook de overige kolommen (C t/m AF) mee kopiëren naar het tabblad "resultaat"

Ik ben al aan het experimenteren geweest maar het is mij (nog) niet gelukt. Hebben jullie suggesties?
 
Ha Rick,

De code van Jarno kun je gewoon aanpassen toch?
Code:
Sheets("Export").Range("A:AF").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
        Sheets("Zoektermen").Range("A1").CurrentRegion, CopyToRange:=Sheets("resultaat").Range("A1:AF1"), Unique:= _
        False
In tabblad "resultaat" moet je wel eerst alle kolommennamen met de hand erin zetten in C1 t/m AF1
 
Wat 'standaard' (default) is hoef je niet te benoemen:

Code:
Sheets("Export").cells(1).currentregion.AdvancedFilter 2, Sheets("Zoektermen").Range("A1").CurrentRegion, Sheets("resultaat").cells(1)
 
In de editor zowel de invoerrange als de uitvoerrange vergroten.


Code:
Sub Filteren()
    
        Sheets("Export").Range("[B]A:AF[/B]").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
        Sheets("Zoektermen").Range("A1").CurrentRegion, CopyToRange:=Sheets("resultaat").Range("[B]A1:AF1[/B]"), Unique:= _
        False

End Sub

Waar je wel voor moet zorgen is dat de kolomkoppen in het tabblad resultaat ook al bestaan. Je kunt evt werken met een verwijzing naar het eerste tabblad, zodat ze altijd gelijk zijn.

Groet Arno
 

Bijlagen

Voor het 'uitvoer' gebied hoef je alleen de 1e cel van de linkerbovenhoek aan te geven, Excel verzorgt de rest.
Alleen als je een selectie van de tabel gekopieerd wil hebben gebruik je de kolomnamen in het 'uitvoer'gebied.
Als je ervoor zorgt dat het 'uitvoer'gebied leeg is, is de kans op verrassingen het kleinst. De kolomkoppen worden dan automatisch meegekopieerd.
 
Laatst bewerkt:
De code had ik inderdaad al aangepast maar ik kreeg een foutmelding. Ik begrijp nu dat deze veroorzaakt wordt doordat ik in het tabblad 'resultaten' de kolomkoppen niet ingevuld had.
Het werkt nu prima!

Bedankt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan