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

Hulp met ComboBox nodig!

Status
Niet open voor verdere reacties.

MeltedForest

Gebruiker
Lid geworden
22 sep 2008
Berichten
178
Beste Excel meesters,

Ik zit met een probleem waar ik zelf niet uit kom. Zie het voorbeeldbestand.
Ik heb op de tab "Maandoverzicht" een aantal gegevens staan. Met behulp van drie comboboxen kan de gebruiker het overzicht filteren.

De comboboxen met maand en jaar moeten filteren op kolom E, de combobox met ontslagbestemming moet filteren op kolom I. De combobox met ontslagbestemming kan zijn data meteen ophalen uit kolom I, maar dan moeten de dubbele en de lege wel worden weggelaten.

De combobox met maand en jaar moeten uit de datum gehaald worden en dan worden vergeleken met de waarde geselecteerd in de combobox. Ik heb de waarde voor de combobox nu nog gewoon uitgetypt, maar het is natuurlijk voor het jaartal handig dat deze alleen de jaartallen die aanwezig zijn in het overzicht weergeeft.

Dit moet dus met behulp van VBA en andere handigheidjes, maar ik weet zo niet hoe ik moet beginnen :shocked:.
 

Bijlagen

combobox1.list=split("2008|2009|2010|2011|2012","|")
 
SNB,

Jouw code werkt zeker alleen bij het gebruik van een UserForm?
Ik heb mijn comboboxen meteen in een excelblad (zie ook het bijgevoegd bestand).
 
Als je wil selecteren op maand en jaar, gebaseerd op de binnenkomst van opdrachtgevers is 1 keuzevak voldoende.
Filter uit kolom E van de opdrachtgevergegevens de maand van binnenkomst.
Zet die in het gebied waaraan de keuzelijst is gekoppeld.

Code:
Private Sub Worksheet_Activate()
  For Each cl In Sheets("Patiëntgegevens").Columns(5).SpecialCells(xlCellTypeConstants)
    If InStr(c0, Format(cl, "mmmm yyyy")) = 0 And IsDate(cl) Then c0 = c0 & Format(cl, "mmmm yyyy") & "|"
  Next
  st = Split(c0, "|")
  For j = 0 To UBound(st)
    [Berekening!N51].Offset(j) = st(j)
  Next
End Sub

NB. zet de opmaak van kolom N in tekst
maak dit gebied leeg voordat je er nieuwe gegevens in zet.
 
Laatst bewerkt:
snb,

bedankt voor je hulp, maar ik snap niet helemaal wat ik met die code aanmoet, kan je hem in het voorbeeldbestand voegen?
 
stap 1
Zet de code bij de gebeurtenissen van werkblad maandoverzicht

stap 2
Maak in werkblad berekening de cellen N51 t/m 71 leeg

stap 3
wijzig het format van de cellen N51 t/m 71 in tekst

stap 4
voeg een aantal nieuwe maanden toe in het werkblad patiëntgegevens

stap 5 ga naar werkblad maandoverzicht

stap 6 kijk in de dropdownlist onder jaar; daar moeten nu maanden en jaren gevonden worden.

stap 7 als je wil controleren of/hoe de macro werkt zet je in de eerste regel van de macro stop, daarna kun je stap voor stap (F8) de macro volgen.
 
snb,

In de code zie ik: mmmm & jjjj staan; dit zorgt dus voor maand jaar
Is dit ook mogelijk voor kwartaal jaar, en week jaar? Wat zijn de codes dan? :o

Tevens moeten de ontslagbestemmingen op dezelfde manier uit het overzicht worden gehaald als de maanden en jaren. Hoe gaat dit in zijn werk? Nu kan er natuurlijk niet gebruik gemaakt worden van isDate.

Gr,
Lennart
 
Ik ken nog wel een aardig bedrijf dat zo'n applicatie voor jullie kan maken.
 
Ik ben weer wat verder :thumb:
Ik heb nu de kwartalen en de weken ook in een aparte combobox gezet, dit moet van de opdrachtgever.

Nu nog ervoor zorgen dat als ik een kwartaal aanklik in de combobox de rijen die buiten dat kwartaal vallen worden gefilterd. Tijd voor trial en error :D
 
nog een dingetje:

Code:
For Each cl In Sheets("Patiëntgegevens").Columns(5).SpecialCells(xlCellTypeConstants)
Gaat alle regels langs, ook de regels die zijn verborgen.
Bestaat er ook een soortgelijke code die de verborgen regels overslaat? :thumb:
 
Code:
For Each cl In Sheets("Patiëntgegevens").Columns(5).SpecialCells(xlCellTypeConstants),SpecialCells(xlCellTypeVisible)

Niet gestest?

Cobbe
 
Thx Cobbe, niet aan gedacht :rolleyes:

Nog één ding dan :eek:
De functie GEMIDDELDE() neemt ook verborgen rijen mee.. Hoe zorg ik ervoor dat die dat niet doet? :o
 
Door de functie Subtotaal te gebruiken?

Cobbe
 
Beste Cobbe,

Helaas werkt SUBTOTAAL() ook niet, SUBTOTAAL() werkt alleen bij een autofilter; ik gebruik de VBA functie Rows.EntireRow.Hidden = True

Zie bijgev. voorbeeldbestand:
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan