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

If en if 2 restricties waaraan voldaan moeten worden...

Status
Niet open voor verdere reacties.

Robberdobber

Gebruiker
Lid geworden
1 okt 2009
Berichten
12
Goedenmiddag,

Ik ben al enige tijd aan het worstelen met het volgende:

Voor een bepaald project wil ik bepaalde punten highlighten, aangezien de lijst aanzienlijk groot is (1000+) heb ik geen behoefte om steeds met iedereen door de gehele lijst heen te lopen. Makkelijker is het als de discussiepunten direct op een bepaalde pagina staan.

Het volgende, er zijn 2 restricties waaraan het discussiepunt moet voldoen om dus gehighlight te worden, in kolom 1 moet UNCLEAR staan, en in kolom 2 moet MUST HAVE staan.

Indien dit het geval is moet de gehele rij waarin dit staat, gekopieerd worden naar een apart blad (bijv. discussieblad meeting 22 november).

Heb weinig verstand van VBA, maar volgens mij moet het hiermee mogelijk zijn, krijg het echter niet voor elkaar :)

Hieronder een bestand met een verkorte versie van hetgeen net vermeld....
 

Bijlagen

  • Helpv1.xlsx
    8,7 KB · Weergaven: 29
Code:
Sub Macro1()
    Range("A1:D1").AutoFilter
    Range("$A$1:$D$60").AutoFilter Field:=3, Criteria1:="Unclear"
    Range("$A$1:$D$60").AutoFilter Field:=4, Criteria1:="Must Have"
    Range("A1:D60").SpecialCells(xlCellTypeVisible).Copy Worksheets(3).Range("A1")
End Sub

Bovenstaande code maakt een autofilter aan en stelt de criteria in.
Vervolgens wordt de gefilterde lijst naar het 3e werkblad gekopieerd.

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
Hoi Rob,

Kan ook met Excel:
Zet deze formule in het blad"Point of Discussion en je krijgt de regelnummer van de rijen die nog ter discussie zijn.
=10000-GROOTSTE((ISSUES!$C$2:$C$9999="Unclear")*(ISSUES!$D$2:$D$9999="Must Have")*(10000-RIJ(ISSUES!$C$2:$C$9999));RIJEN(A$2:A2))
De formule invoeren als een matrix-formule dus Ctrl + Shift indrukken en dan op Enter!

Groet,

Jeroen
 
Code:
Sub Macro1()
    Range("A1:D1").AutoFilter
    Range("$A$1:$D$60").AutoFilter Field:=3, Criteria1:="Unclear"
    Range("$A$1:$D$60").AutoFilter Field:=4, Criteria1:="Must Have"
    Range("A1:D60").SpecialCells(xlCellTypeVisible).Copy Worksheets(3).Range("A1")
End Sub

Bovenstaande code maakt een autofilter aan en stelt de criteria's in.
Vervolgens wordt de gefilterde lijst naar het 3e werkblad gekopieerd.

Met vriendelijke groet,


Roncancio

Bedankt voor de supersnelle reactie,

Echter wil ik graag dat de huidige rij ook blijft staan :) dus een copy/paste verhaal. Wat veranderd er dan in je command?

mvg
 
In dat geval:

Code:
Sub Macro1()
    Range("A1:D1").AutoFilter
    Range("$A$1:$D$60").AutoFilter Field:=3, Criteria1:="Unclear"
    Range("$A$1:$D$60").AutoFilter Field:=4, Criteria1:="Must Have"
    Range("A1:D60").Copy Worksheets(3).Range("A1")
End Sub

Met vriendelijke groet,


Roncancio
 
Bedankt voor wederom de snelle reactie,

Echter blijft hij steeds de gekopieerde cellen verwijderen :S
Snap niet echt hoe dit mogelijk is?
 
Bedankt voor wederom de snelle reactie,

Echter blijft hij steeds de gekopieerde cellen verwijderen :S
Snap niet echt hoe dit mogelijk is?

De filtering loopt t/m regel 60.
Vervolgens worden de gegevens steeds op cel A1 van Blad 3 geschreven.

Wat wil je anders hebben?

Met vriendelijke groet,


Roncancio
 
Allereerst bedankt dat je hier de tijd voor neemt :)

Ivm non-disclosure redenen kan ik het origineel wat ik gebruik hier niet posten. Het ziet er iig als volgt uit:

Eerste werkblad met een opsomming van alle 'issues' (totaal, en de verschillende statussen). Daarna een stuk of 20 werkbladen met issues van verschillende afdelingen, welke allemaal dus verschillende statussen hebben. Ik wil deze werkbladen filteren door op pagina 1 op een knop te drukken waardoor alle urgente issues direct verschijnen op een apart blad. De urgente moeten voldoen aan 'unclear' (kolom C) en 'must have' (kolom D).

Op basis van die selectie zou ik dus graag willen dat de gehele issue zich verplaatst naar een apart werkblad waar we dan op een vergadering snel doorheen kunnen lopen.

BVD
 
Allereerst bedankt dat je hier de tijd voor neemt :)

Ivm non-disclosure redenen kan ik het origineel wat ik gebruik hier niet posten. Het ziet er iig als volgt uit:

Eerste werkblad met een opsomming van alle 'issues' (totaal, en de verschillende statussen). Daarna een stuk of 20 werkbladen met issues van verschillende afdelingen, welke allemaal dus verschillende statussen hebben. Ik wil deze werkbladen filteren door op pagina 1 op een knop te drukken waardoor alle urgente issues direct verschijnen op een apart blad. De urgente moeten voldoen aan 'unclear' (kolom C) en 'must have' (kolom D).

Op basis van die selectie zou ik dus graag willen dat de gehele issue zich verplaatst naar een apart werkblad waar we dan op een vergadering snel doorheen kunnen lopen.

BVD

Dat je geen originele gegevens kan plaatsen is geen enkel probleem, maar ik begrijp persoonlijk niet helemaal hoe je het wilt hebben. Maar dat kan aan mij liggen.

In 1e instantie heb ik een filtering toegepast zodat alleen de gegevens die aan de filtering voldoen in een ander werkblad worden geplaatst.
In 2e instantie wordt een kopie van de gegevens in een ander werkblad geplaatst inclusief de filtering.

Om te voorkomen dat je te veel langs elkaar heen praten, lijkt het mij handig als je in het 2e werkblad aangeeft hoe het eruit moet zien.

Dus:
Blad1: zo is het
Blad2: zo moet het worden.

Met vriendelijke groet,


Roncancio
 
Code:
Sub Macro1()
  With Range("$A$1:$D$60")
    .AutoFilter 3, "Unclear"
    .AutoFilter 4, "Must Have"
    .offset(1).specialcells(xlcelltypevisible).Copy Worksheets(3).Range("A1")
    .Autofilter
  End With
End Sub
PS het meervoud van criterium is criteria (niet criteria's), zoals museum musea, datum data, etcetera (het meervoud van etceterum).
het meervoud van Status is status (niet statussen); vergelijk : het meervoud van casus is casus. (4e declinatie Lat.)
 
PS het meervoud van criterium is criteria (niet criteria's), zoals museum musea, datum data, etcetera (het meervoud van etceterum).
het meervoud van Status is status (niet statussen); vergelijk : het meervoud van casus is casus. (4e declinatie Lat.)

Ik heb de fout in "ma van tijd" al aangepast.;)

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
Grappig dat je begint over het meervoud van het woord status. Soms heb ik van die moment dat mijn gehele herseninhoud op 'off' gaat. Dan google ik het en type ik het eerste in wat overeen komt :).

In ieder geval, back to topic:

Heb bijgevoegd even een bestandje n.a.v. de reacties. Kort samengevat gaat het erom dat er dus een selectie gemaakt wordt op verschillende tabbladen, en dat deze selectie gekopieerd wordt naar de eerste pagina van het documenten (liefst via een button).

Hopelijk is het zo iets duidelijker,

mvg
 

Bijlagen

  • Helpv2.xlsx
    9,6 KB · Weergaven: 32
Met een xls-bestand had ik meegedaan.
De code van Roncancio kopieert alleen maar.
Omdat door de filtering de niet gefilterde rijen niet zichtbaar zijn, lijkt het alsof er rijen zijn verdwenen.
Dat herstel je door op het gefilterde gebied nogmaals de methode autofilter (zonder argumenten) toe te passen.
 
Laatst bewerkt:
Met een xls-bestand had ik meegedaan.
De code van Roncancio kopieert alleen maar.
Omdat door de filtering de niet gefilterde rijen niet zichtbaar zijn, lijkt het alsof er rijen zijn verdwenen.
Dat herstel je door op het gefilterde gebied nogmaals de methode autofilter (zonder argumenten) toe te passen.
 

Bijlagen

  • Helpv2.xls
    19 KB · Weergaven: 13
Daarvoor hebben we 'uitgebreid filter'
Code:
Private Sub knop_agenda_Click()
  With Sheets("Issues")
    Sheets("Issue2").[A1].CurrentRegion.AdvancedFilter xlFilterCopy, .[A1].CurrentRegion, .Cells(Rows.Count, 1).End(xlUp).Offset(3)
    Sheets("Issue1").[A1].CurrentRegion.AdvancedFilter xlFilterCopy, .[A1].CurrentRegion, .Cells(Rows.Count, 1).End(xlUp).Offset(1)
  End With
End Sub

Zie de bijlage
 

Bijlagen

  • __Helpv2(2).xls
    36,5 KB · Weergaven: 29
Geweldig,

Dank je voor de gedane moeite, het werkt als een trein. Als ik vak A2 en B2 verander kan ik zelfs op andere criteria zoeken. Mooi werk :)

Toch nog een vraag erachteraan, meer voor mezelf om er wat van te leren:

Private Sub knop_button1_Click()
With Sheets("Issues")
Sheets("Issue2").[A1].CurrentRegion.AdvancedFilter xlFilterCopy, .[A1].CurrentRegion, .Cells(Rows.Count, 1).End(xlUp).Offset(3)
Sheets("Issue1").[A1].CurrentRegion.AdvancedFilter xlFilterCopy, .[A1].CurrentRegion, .Cells(Rows.Count, 1).End(xlUp).Offset(1)
End With
End Sub

Ik zie in de gehele formule nergens de copy-functie terug. Kan je mij een beetje uitleggen hoe de formule werkt? Vind het namelijk wel interessant

Nogmaals bedankt (allebei)!
 
Toch nog een opmerking,

Ik heb de gehele formule nu ingevuld in het document waar het in hoort. Echter een paar dingen:

Ik heb cel validation bij veel van de cellen, dus dropdownmenu's. Volgens mij pakt de formule dit niet? want hij komt namelijk niet terug met antwoorden, maar post alleen de A1 rij met (Area, status, board response etc.).

Hoe kan dit?
 
Engelse humor ?
Ik zie in de gehele formule nergens de copy-functie terug

Code:
Private Sub knop_button1_Click()
  With Sheets("Issues")
    Sheets("Issue2").[A1].CurrentRegion.AdvancedFilter [COLOR="Red"]xlFilterCopy[/COLOR], .[A1].CurrentRegion, .Cells(Rows.Count, 1).End(xlUp).Offset(3)
    Sheets("Issue1").[A1].CurrentRegion.AdvancedFilter [COLOR="red"]xlFilterCopy[/COLOR], .[A1].CurrentRegion, .Cells(Rows.Count, 1).End(xlUp).Offset(1)
  End With
End Sub

Ik heb cel validation bij veel van de cellen, dus dropdownmenu's. Volgens mij pakt de formule dit niet? want hij komt namelijk niet terug met antwoorden, maar post alleen de A1 rij met (Area, status, board response etc.).
Daar heeft het niet mee te maken.
Zorg ervoor dat in de validatielijst en in de gegevens consitentie zit met betrekking tot hoofdletters/kleine letter.
Kontroleer of de invero inderdaad exact overeenkomt met de invoer van de criteria (spaties bijv.).
Aan de invoervelden kun je dezelfde validatielijsten hangen als aan de invoerwerkbladen.
 
Laatst bewerkt:
Sorry, heb er overheen gelezen (hoe dat mogelijk is weet ik ook niet).

Ander punt, hij kopieert nu ook steeds de bovenste rij (area, issue, etc.). Hoe laat ik dit achterwege?

Daarnaast heb ik getracht heb in te voeren voor 18 andere paginas, dus gewoon knippen plakken en proberen. Maar in dat geval kopieert hij echt alleen de bovenste rij, en kopieert hij geen rijen die voldoen aan de voorwaarden.

Enig idee hoe dat mogelijk is?

BVD voor de gedane moeite!
 
Het werkt een stuk eenvoudiger als in ieder invoerblad alle gegevens aaneengesloten in de linkerbovenhoek (beginnend vanaf cel A1) staan, zonder lege rijen of lege kolommen. Dan werkt Range("A1").currentregion nl. naar behoren. (zoek op 'currentregion' in de hulp van de VBEditor.)

Met veel invoerbladen en het selectiecriterium in blad "Issues":

Code:
Private Sub knop_button1_Click()
  for each sh in sheets
    if sh.name <>"Issues" Then
      With Sheets("Issues")
         sh.[A1].CurrentRegion.AdvancedFilter xlFilterCopy, .[A1].CurrentRegion, .Cells(Rows.Count, 1).End(xlUp).Offset(2)
      End with
    End If
  Next
End Sub
Het verwijderen van 'kopregels' komt later wel.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan