• 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 overnemen onder bepaalde voorwaarden

Status
Niet open voor verdere reacties.

Danny83

Gebruiker
Lid geworden
23 dec 2008
Berichten
17
Hallo,

Ik zit met een probleem. Ik heb een voorbeeldsheet gemaakt en hierbij is blad1 gevuld met heel veel informatie en op blad2 ik een deel van deze informatie zichtbaar maken.
Op blad2 wil ik in cel A1 een nummer selecteren of intypen (welke op blad1 kolomA voorkomt), waarna vanaf rij 3 een overzicht van de rijen ontstaat waarvoor geldt dat de waarde in kolom A overeenkomt met de waarde in cel A1.
Een andere voorwaarde is dat een bepaalde kolom "E" gevuld is (dus niet "").

Het voorbeeldmapje zal een en ander duidelijk maken.

Wie kan mij helpen dit (voor het oog simpel lijkende) probleem op te lossen???

Ik weet dat m.b.v. filters dit mogelijk is op blad1 zelf, maar zo wil ik het niet hebben.

Groeten,

Danny
 

Bijlagen

Wat je nu dus eigenlijk wilt is het zelfde bereiken als met de auto-filter, maar dan op een hele complex manier. Denk dat het vba gaat worden, maar ik weet niet zeker of je dat wilt ???
 
Dan zal je moeten werken met een WorkSheet_Change, Find en Findnext met je extra voorwaarde om zo je gegevens op te halen.

Mvg

Rudi
 
Oplossing met matrix formule (CNTR SHIFT ENTER)

Beste Danny83,

Hierbij mijn oplossing (in excel) - zie bijlage -.

Volgens mij is dit precies wat je bedoeld.

Kun je het nog ff laten weten of dit precies is wat je bedoeld?

Met vriendelijke groeten,

Oeldere
 

Bijlagen

Niet helemaal wat ik zocht...

Dit is niet precies wat ik bedoelde. Het zal toch iets met VB moeten worden en het is dus de bedoeling dat in blad2 een volledige rij word overgenomen van blad1 indien kolom A én E een waarde hebben (niet leeg).

In het geval van mijn voorbeeldje zouden rij 8 en 9 van blad1 zichtbaar moeten zijn op rij 3 en 4 van blad2.

Beste Danny83,

Hierbij mijn oplossing (in excel) - zie bijlage -.

Volgens mij is dit precies wat je bedoeld.

Kun je het nog ff laten weten of dit precies is wat je bedoeld?

Met vriendelijke groeten,

Oeldere
 
Dit is wat jij bedoelt (2e persoon enkelvoud eindigt altijd op een t @Oeldere).

Zet in blad 2

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then If Sheets(1).Columns(1).Find(Target.Value, , xlValues).Offset(4) <> "" Then Sheets(1).Columns(1).Find(Target.Value, , xlValues).EntireRow.Copy Cells(Rows.Count, 1).End(xlUp).Offset(1)
End Sub
 
Laatst bewerkt:
Beste Danny83,

Kun je aangeven waarom deze optie niet goed is.

Voor de volledigheid de overige cellen (van dezelfde rij) ook laten overkomen. - zie bijlage -

Kun je aangeven of dit wel aan je verwachtingen voldoet?

En zo nee, waarom dan niet.

Met vriendelijke groeten,

Oeldere
 

Bijlagen

bijna maar net niet helemaal...

In jouw voorbeeld worden alle regels overgenomen ongeacht wat er in kolom E staat gevuld. En eerlijk gezegd zou ik dit liever met een VB-code willen oplossen... evengoed bedankt hoor!

Groet,

Danny

Beste Danny83,

Kun je aangeven waarom deze optie niet goed is.

Voor de volledigheid de overige cellen (van dezelfde rij) ook laten overkomen. - zie bijlage -

Kun je aangeven of dit wel aan je verwachtingen voldoet?

En zo nee, waarom dan niet.

Met vriendelijke groeten,

Oeldere
 
niet helemaal correct...

Hallo,

Dit is nog niet helemaal wat ik zoek. Op dit moment wordt er slechts één rij weergegeven, terwijl er dus 2 moeten worden weergegeven.
Een ander punt hierbij is dat als ik een andere voorwaarde invul, bijv. e7, dan blijft de rij van de vorige voorwaarde gewoon staan. Deze zou gewist moeten worden en vervangen moeten worden door de nieuwe voorwaarde.
Kun je mij hierbij helpen???

Groeten,

Danny

Dit is wat jij bedoelt (2e persoon enkelvoud eindigt altijd op een t @Oeldere).

Zet in blad 2

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then If Sheets(1).Columns(1).Find(Target.Value, , xlValues).Offset(4) <> "" Then Sheets(1).Columns(1).Find(Target.Value, , xlValues).EntireRow.Copy Cells(Rows.Count, 1).End(xlUp).Offset(1)
End Sub
 
Dan gaan we gebruik maken van Advancedfilter in VBA

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$A$2" Then
    [A4].CurrentRegion.Clear
    Sheets(1).Range("A1").CurrentRegion.AdvancedFilter xlFilterCopy, [A1:E2], [A4]
  End If
End Sub
Dan zul je kleine veranderingen in werkblad 2 moeten aanbrengen:
- de veldnamen van blad 1 invoegen
- het 2e criterium (niet leeg of >0) invoeren

Dit staat in de bijlage
 

Bijlagen

Dit is wat ik zocht!

Dit is de oplossing waar ik naar op zoek was, alhoewel ik toch denk dat er een VBA-code bestaat waarbij de criteria kunnen worden opgenomen, zodat alleen het nr d5 geselecteerd hoeft te worden.
Voorlopig vind ik het zo goed en zal ik hiermee verder werken!

Vriendelijk bedankt,

Danny

Dan gaan we gebruik maken van Advancedfilter in VBA

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$A$2" Then
    [A4].CurrentRegion.Clear
    Sheets(1).Range("A1").CurrentRegion.AdvancedFilter xlFilterCopy, [A1:E2], [A4]
  End If
End Sub
Dan zul je kleine veranderingen in werkblad 2 moeten aanbrengen:
- de veldnamen van blad 1 invoegen
- het 2e criterium (niet leeg of >0) invoeren

Dit staat in de bijlage
 
aanvulling...

Hallo,

Is het misschien mogelijk om een opdrachtknop in blad2 te maken, die vraagt welk nr je wilt selecteren (bijv. e7) en vervolgens de rijen van blad1 laat zien welke met dit nr beginnen en waarvan kolom J gevuld is (in dit geval rij 11 t/m 14).
Ik hoor graag van jullie...

Groet,

Danny
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan