Autofilter met 2 comboboxen

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

Roma

Gebruiker
Lid geworden
7 sep 2013
Berichten
515
Beste,
Ik heb een formulier en daarin staan 2 comboboxen.
In combobox1 zoekt hij naar de naam
in combobox2 moet daar de maand verschijnen.

Wie kan mij helpen om bij de naam op de juiste maand te filteren.
Alvast bedankt
 

Bijlagen

Commandbutton overbodig gelaten in form.
Code:
Private Sub ComboBox1_Change()
With Sheets("Blad1")
 If .AutoFilterMode Then .AutoFilterMode = False
End With
End Sub


Private Sub ComboBox2_Change()
With Sheets("Blad1").Range("A3:Z" & Sheets("Blad1").Cells(Rows.Count, 1).End(xlUp).Row)
  If .Parent.AutoFilterMode Then .Parent.AutoFilterMode = False
    .AutoFilter 1, ComboBox1.Value
    .AutoFilter 3, ComboBox2.Value
   '.autofilter 3, application.proper(combobox2.value)  'hoort bij Ned. versie van .List
 End With
End Sub


Private Sub UserForm_Initialize()
Sheets("Blad1").Unprotect "3300AP"
With Sheets("Blad1")
 If .AutoFilterMode Then .AutoFilterMode = False
 sn = .Range("a4:a" & .Cells(Rows.Count, 1).End(xlUp).Row)
   For i = 1 To UBound(sn)
     If InStr(1, naam, "|" & sn(i, 1), vbTextCompare) = 0 Then naam = naam & "|" & sn(i, 1)
   Next i
  ComboBox1.List = Split(Mid(naam, 2), "|")
  'ComboBox2.List = [index(text(30*row(1:12), "mmmm"),)] 'Engelse maandnamen
  'ComboBox2.List = [index(text(30*row(1:12),"[$-413]mmmm"),)] 'Ned, maar zonder hoofdletter.
  ComboBox2.List = Application.GetCustomListContents(4)
End With
End Sub
 
Laatst bewerkt:
beste Harry,
Het werkt perfect. dank je wel.
Is het ook mogelijk dat per persoon een overzicht van alle maanden?
 
Hoi,

Hoe moet ik me dat voorstellen?
 
om een jaaroverzicht per persoon te krijgen moeten alle 12 maanden meegenomen worden
 
beste Harry,
Ik heb de Commandbutton gebruikt met de oude formule en dat werkt goed.

als laatste vraag (ik wil graag wat leren) hoe heb je het voor elkaar gekregen om maar 1 enkele naam in de combobox te krijgen. Ik vind dat een knap stukje werk.

Bedankt voor je hulp:thumb::thumb::thumb::thumb:
Rob
 
Verander de eerste combobox code eens in:
Code:
Private Sub ComboBox1_Change()
With Sheets("Blad1").Range("A3:Z" & Sheets("Blad1").Cells(Rows.Count, 1).End(xlUp).Row)
  If .Parent.AutoFilterMode Then .Parent.AutoFilterMode = False
    .AutoFilter 1, ComboBox1.Value
    .AutoFilter 3, "<>"
 End With
End Sub
 
Reactie op 14:07 uur.

Code:
sn = .Range("a4:a" & .Cells(Rows.Count, 1).End(xlUp).Row)
   For i = 1 To UBound(sn)
     If InStr(1, naam, "|" & sn(i, 1), vbTextCompare) = 0 Then naam = naam & "|" & sn(i, 1)
   Next i
  ComboBox1.List = Split(Mid(naam, 2), "|")

Loop alle stukjes uit de ééndimensionale array bijlangs.
Zet het stukje ( sn(i,1) ) in een string (=naam) met de voorvoegsel "|" (pipe).
Controleer of het volgende stukje voorkomt in de string, zo niet dan weer toevoegen (naam = naam & "|" & sn(i, 1) ).

Aan het eind worden de namen (naam) weer gescheiden door de pipe met Split(naam,"|").

Zo staat het dus in de string (naam).
|Henk|Jan|Piet

Doordat de | vooraan staat (1e teken) ga ik scheiden op de pipe beginnend bij het tweede teken Mid(naam,2).

Succes.
 
Harry,

In mijn grote bestand geeft het een foutmelding:
Code:
If .Parent.AutoFilterMode Then .[COLOR="#FF0000"]Parent.AutoFilterMode = False[/COLOR]
    .AutoFilter 1, ComboBox1.Value
    .AutoFilter 3, ComboBox2.Value

Fout 1004
Eigenschap van AutoFilterMode van klasse worksheet kan niet worden ingesteld

wat doe ik fout
 
Dan ontbreekt vast een stukje code zoiets als dit:
Code:
With Sheets("Blad1").Range("A3:Z" & Sheets("Blad1").Cells(Rows.Count, 1).End(xlUp).Row)
 
Foutje gevonden. Mijn fout. sorry
Bedankt voor het knappe stukje werk
Rob
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan