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

VERT.ZOEKEN, maar dan anders

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

edjes

Gebruiker
Lid geworden
9 apr 2011
Berichten
5
Hallo,

Ik heb een vraag waar ik niet uitkom, noch elders een oplossing gevonden.

Ik werk aan een complex (al jaren draaiend) dienstrooster, waaraan ik enkele functionaliteiten wil toevoegen.

Op zich simpel, maar het lukt me maar niet.
Zie onderstaand voorbeeld plaatje.

Persoon 2 en persoon 5 hebben zich beide voor de dienst "r" ingeschreven op 1-2-2011.
Dit wordt geteld in cel C19.
Ik wil nu in cel C21 de namen van deze twee personen laten opschrijven, obv de waarde van cel C19>1.

Dus: indien C19>1 (meer dan 1 persoon heeft "r") ingevuld, dan moeten de namen van deze personen in C21 komen. Vert.zoeken werkt niet, omdat het kolomindexgetal variabel is, de gezochte persoon staat altijd in kolom A.

9-4-2011 17-16-47.jpg

Ik doe het liever niet met VBA, omdat ik dan moet laten updaten, ipv dat je het live ziet.

Heeft iemand suggesties??
Veel dank,

Edjes
 
1) normaal zou ik gekeken hebben of het met de formule vergelijken gaat lukken.

je hebt echter een jpg bijgevoegd, zodat de helpers nu het bestand moeten namaken.


2) met een filter op kolom C ben je toch ook geholpen

Code:
Dus: indien C19>1 (meer dan 1 persoon heeft "r") ingevuld, dan moeten de namen van deze personen in C21 komen.

3) wat is de reden (gemak) om alle uitkomsten in 1 cel (c21) te zetten?
 
Laatst bewerkt:
Wat als er zich drie of meer inschrijven.
Formule wordt dan wel erg lang.
Dus zal VBA denk ik toch makkelijker gaan.
Maar ik moet straks weg en ben laat terug, dus bekijk ik het morgen wel weer.
 
Hallo Oeldere,

Bedankt voor je antwoord.

Suf van me, ik dacht dat zien jullie misschien in één oogopslag.
Ik heb nu een testdocumentje bijgevoegd.

1) hopelijk wil je toch nog kijken
2) sorry, dat begrijp ik niet. filter van wat?
3) ik wil het graag, omdat dat meer duidelijkheid geeft.
Het rooster is een uitgebreid rooster voor 25 personen, verdeeld over meerdere locaties.
Er worden veel saldi uitgerekend.
Deze personen mogen zich inschrijven in het rooster, middels lettercodes (r, z, aw, enz), deze codes tel ik elders. Het is niet de bedoeling dat meerdere mensen op 1 datum intekenen, maar het mag wel, als democratisch proces. Er de optelcel licht op middels voorwaardelijke opmaak, wanneer er meer mensen intekenen.

Wanneer iemand in het rooster inlogt, worden voor de overzichtelijkheid alle andere personen verborgen (rijen), zodat deze persoon alleen zichzelf ziet en de totaalsaldi voor die datum, met daarbij wat hij/zij nog moet invullen in totaal.

Het is daarom prettig, wanneer hij/zij over-intekent, dat deze persoon dat in één oogopslag kan zien met wie dat is, ipv alleen maar tegen een gekleurd getal aankijken.

Dank!
 

Bijlagen

Zit nog geen actie in mijn vrouw om weg te gaan. :D
Dus nog snel even deze macro.
Alhoewel je geen VBA wil zet ik het er toch maar bij als alternatief voor de andere reacties die je nog krijgt.
Code:
Sub tst()
 Dim j As Integer, cl As Variant
   For j = 2 To 11
    y = 21
    For Each cl In Range(Cells(7, j), Cells(18, j))
 If cl = "r" Then
      Cells(y, j) = Cells(cl.Row, 1)
      y = y + 1
    End If
   Next cl
 Next j
End Sub
 

Bijlagen

Dank je Harry!

Het nadeel van VBA in deze (ik gebruik veel VBA in deze sheet) is dat de cellen pas geupdated zijn wanneer de routine heeft gelopen. Met een cel-formule is dit realtime.

Of kan ik op cel-nivo deze VBA laten draaien, zodat de info altijd gelijk up to date is?
 
zet de macro, in het betreffende werkblad
als volgt, dan 'runt' die telkens wanneer je iets wijzigt.


Code:
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub
 
edjes,

de oplossingen van de medeformleden in 1 bestand gezet.

de oplossing met de filters gaat niet, omdat niet alle cellen zijn gevuld.

@hsv
de code vult wel alle namen, maar als een naam verdwijnt (omdat deze niet mag/kan werken) blijft hij/zij wel op de lijst vermeld staan.
ik kan met voorstellen dat de TS dit niet wenst.

@hsv/@efsix
ik krijg de Private Sub Worksheet_Change niet goed werkend.

@sa11
deze formule werkt perfect, maar dat wist je zelf natuurlijk ook wel.
 

Bijlagen

Tjemig de pemig, wat een overweldigend leuk forum is dit!
Als jullie elkaars oplossingen ook helemaal uitpluizen....puur enthousiasme.

Ik krijg ook die private sub worksheet change niet werkend.
Ik ga voor de oplossing van SA.
Zeer interessante gedachtengangen, leerzaam om te volgen.

Ontzettend bedankt voor jullie meedenken en oplossingen.
Hartverwarmend!
 
Als jullie elkaars oplossingen ook helemaal uitpluizen....puur enthousiasme.

Nog even een aandachtspuntje
Je hebt het nu slechts over dienst "r".
Maar je hebt misschien ook nog wel een dienst "t"
De gegeven oplossing van SA reageert hier niet op.
Je zult een soortgelijk tabel moeten maken voor de "t" dienst.

Ik weet niet hoeveel verschillende diensten je hebt, bij een groot aantal kan dit weer onoverzichtelijk worden
 

Bijlagen

correct popipipo,

ik heb inderdaad 4 van dit soort diensten....
zit er nog wat op te tobben, zou toch moeten lukken.
 
@hsv
de code vult wel alle namen, maar als een naam verdwijnt (omdat deze niet mag/kan werken) blijft hij/zij wel op de lijst vermeld staan.
ik kan met voorstellen dat de TS dit niet wenst.

Hierbij een kleine aanpassing Oeldere.

Code:
 Private Sub Worksheet_Change(ByVal Target As Range)
Dim j As Integer, cl As Variant
Application.EnableEvents = False
 Range("B21:K" & Cells.SpecialCells(xlCellTypeLastCell).Row).ClearContents
   For j = 2 To 11
    y = 21
    For Each cl In Range(Cells(7, j), Cells(18, j))
 If cl = "r" Then
      Cells(y, j) = Cells(cl.Row, 1)
      y = y + 1
    End If
   Next cl
 Next j
 Application.EnableEvents = True
End Sub
 

Bijlagen

heb de formule een beetje aangepast.formule verwijst naar
een cel i.p.v een letter, zo wordt de formule variabel.zie bijlage.
succes...
.
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan