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

Gegevens selecteren die voldoen aan bepaalde criteria

Status
Niet open voor verdere reacties.

Avaloni

Gebruiker
Lid geworden
24 okt 2007
Berichten
10
Ik probeer een risicoprofiel te maken van een groot aantal risico's. Om het een en ander duidelijk te houden heb ik een simpele versie opgesteld, welke te vinden is in de bijlage...

het is de bedoeling dat excel automatisch de omschrijving van een risico kopieert welke voldoet een een bepaald kenmerk (characteristic), percentage/kans en de bij het kenmerk horende impact. in het werkblad chart is het een en ander al te zien, maaar.......

er zijn nog 2 problemen die zich voordoen..
1. per risico kunnen maximaal 3 kenmerken worden ingevuld..
in mijn huidige formule wordt er alleen naar de eerste rij kenmerken gekeken, als een kenmerk daar niet in voor komt is het de bedoeling dat excel in het 2e en daarna 3e rijtje kijkt of het kenmerk daar wel voor komt (en dan ook automatisch bijbehorende impact selecteren)
2. er kunnen meerdere uitkomsten zijn per cel; hoe kunnen deze allemaal worden weergegeven... op het moment wordt alleen de eerste die aan de parameters voldoet weergegeven.
bird en goat moeten bijvoorbeeld bij kenmerk financial beide bij impact low, risk%- 70% worden weergegeven.

het excel bestand zal het een en ander verduidelijken. Hierin is ook de tabel opgenomen (handmatig ingevuld) hoe deze er uiteindelijk uit zou moeten komen te zien...

bedankt
Bekijk bijlage example.xlsx
 
Zijn de "kans" niveaus en karakteristieken vast? Dat wil zeggen, altijd 10/25/50/70/90 ? of volledig variabel?
 
Er kan enkel gekozen worden tussen 10/25/50/70/90 %
karakteristieken zijn een 9-tal... in dit voorbeeld 3
en ook de impact kan enkel hoog/midden/laag

ben ondertussen iets verder (het tweede probleem is hiermee opgelost),
zie bijlage (NB: de knop 'opschonen' werkt nog niet naar behoren)

Bekijk bijlage example.xlsm
 
Ik zou zelf toch snel neigen naar een VBA oplossing met deze vaste omlijsting.

Je kunt namelijk aan de hand van kolom B en D eenvoudig een lijstje samenstellen met "risk, impact,chance". Vervolgens dit lijstje over de vaste hoeveelheid cellen verdelen
 
ja, kansen spreiden...
ik hoop op één van de fora iemand te vinden die een oplossing heeft gezien ik hier al enige tijd mee aan het worstelen ben...
 
ja, kansen spreiden...
Volgens mijn idee is het je kansen halveren:

Stel jij bent een van de helpers op dit forum en het volgende overkomt je.

Je doet dit geheel vrijwillig in je vrije tijd.
Je bent een halfuurtje (of misschien wel meer) bezig met het uitwerken van de oplossing van een probleem. Je bent tevreden en post het op de site
Niets aan de hand denk je, echter even later zie je dat de vraag was ook al op een andere site was gesteld. Daar was één uur geleden al een oplossing gegeven exact gelijk aan die van jou.
Je bent dus een halfuurtje (of misschien wel meer) bezig geweest voor niets.
Dat is dan flink balen en denk je ik had mijn tijd beter aan een andere vraag kunnen besteden.

Bij sommige forums is de cossposting (1 vraag op 2 sites) verboden, bij ander sites weer niet.
Er zijn ook helpers die vraagstellers die aan crossposting doen links laten liggen en nooit meer zullen helpen.
Het minste wat je kunt doen is vermelden (met link) dat je de vraag ook ergens anders hebt gesteld.
Zo hebben helpers van beide sites hulp aan elkaar en snij jij je niet in de vingers en zul je ook nog sneller tot een oplossing komen.
 
Mocht ik verder komen in mijn probleem dan zal ik dat zeker noemen, zodat iedereen direct op de hoogte is.
Op die manier wil ik voorkomen dat mensen voor niets bezig zijn...
iig bedankt voor het noemen van de link; dan is iedereen daar in ieder geval van op de hoogte.
ik snap wat je bedoelt
de reden is dat ik dringend op zoek ben naar een oplossing

dus ondanks de crosspost hoop ik dat je me alsnog wil helpen..
 
Laatst bewerkt:
Een oplossing voor jouw probleem met jou layout heb ik niet.
Maar als je nu eens de filterfunctie in tabblad 'risk' gebruikt?
Krijg je dan niet de gegevens te zien die je wilt?
 
Even VBA verder promoten :)

op het chart_change event:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Union([b3], [d3])) Is Nothing Then
Dim lijstje() As Variant
ReDim lijstje(0)
teller = 0

For Each cell In Sheets("Risk").Range(Sheets("Risk").[b2], Sheets("risk").[b50000].End(xlUp))
    If cell.Value = Sheets("chart").[d3].Value Then
        If cell.Offset(0, 2).Value = Sheets("chart").[b3].Value Then
            lijstje(teller) = Array(cell.Offset(0, 1), cell.Offset(0, 3), cell.Offset(0, 8))
            teller = teller + 1
            ReDim Preserve lijstje(UBound(lijstje) + 1)
        End If
        If cell.Offset(0, 4).Value = Sheets("chart").[b3].Value Then
            lijstje(teller) = Array(cell.Offset(0, 1), cell.Offset(0, 5), cell.Offset(0, 8))
            teller = teller + 1
            ReDim Preserve lijstje(UBound(lijstje) + 1)
        End If
        If cell.Offset(0, 6).Value = Sheets("chart").[b3].Value Then
            lijstje(teller) = Array(cell.Offset(0, 1), cell.Offset(0, 7), cell.Offset(0, 8))
            teller = teller + 1
            ReDim Preserve lijstje(UBound(lijstje) + 1)
        End If
    End If
Next cell

Sheets("chart").[b5:f7].ClearContents
If UBound(lijstje) Then
ReDim Preserve lijstje(UBound(lijstje) - 1)

For Each element In lijstje
    Select Case element(1)
        Case "high"
            y = 0
        Case "middle"
            y = 1
        Case "low"
            y = 2
    End Select
    
    Select Case element(2)
        Case 0.1
            x = 0
        Case 0.25
            x = 1
        Case 0.5
            x = 2
        Case 0.7
            x = 3
        Case 0.9
            x = 4
    End Select
    Sheets("chart").[b5].Offset(y, x).Value = Sheets("chart").[b5].Offset(y, x).Value & element(0) & Chr(32)
Next element
End If
End If
End Sub
 
Wampier,

werkt zeer soepel!

ik had inderdaad aangegeven dat ik 'Bird' en 'Goat' naast elkaar wou hebben, maarr..
is het ook mogelijk via VBA code om bij meerdere items automatisch een rij in te voegen en daar het 2e item te krijgen daarna het 3e, 4e, etc..
Dit namelijk omdat het officiele brondocument langere risico omschrijvingen heeft..
Deze kunnen dan mooi gescheiden worden voor meer overzicht..

Ik heb om de lay-out te bevorderen de y-offset iets aangepast....
de rijen zouden dan ingevoegd moeten worden op rij 6, 8 of 10... op die manier blijft de lay-out in tact

bijlage: voorbeeldbestand inclusief VBA-code
Bekijk bijlage voorbeeld.xlsm
 
Het is eenvoudiger om enters te geven binnen een enkele cell, ipv nieuwe regels toevoegen. Als je nieuwe cellen invoegt moet je de matrix volledig nieuw opbouwen iedere keer als de selectie veranderd.

Nadeel is wel dat je gelimiteerd bent in het aantal tekens, maar mogelijk werkt het ;)

Code:
Sheets("chart").[b5].Offset(y, x).Value = Sheets("chart").[b5].Offset(y, x).Value & element(0) & Chr(32)

Je kunt het testen door in deze code "chr(32)" te vervangen door "vbLf"
 
Wampier,
bedankt voor alle uitleg..

ik had nog een laatste vraagje voor ik 'm ga aanpassen aan het brondocument...
is het mogelijk om de restricitie van 'type:strategic' te verwijderen..
dus dat er enkel naar het risicokenmerk wordt gekeken.
ik ben niet super met VBA en heb wel een en ander geprobeerd...

waarschijnlijk is het simpelweg een stukje code verwijderen?
 
deze regel:

Code:
 If cell.Value = Sheets("chart").[d3].Value Then
en bijbehorende end if natuurlijk.
 
Onder het mom al doende leert men heb ik je code net overgezet naar mijn brondocument.
één en ander qua cijfertjes en omschrijvingen aangepast, omdat er meerdere kolommen waren en andere omschrijvingen etc.

Het ziet er nu naar uit dat 'ie perfect loopt.

hartelijk dank!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan