popipipo
Meubilair
- Lid geworden
- 21 nov 2006
- Berichten
- 9.118
- Besturingssysteem
- Win11
- Office versie
- Office 365
Bekijk de onderstaande video om te zien hoe je onze site als een web app op je startscherm installeert.
Opmerking: Deze functie is mogelijk niet beschikbaar in sommige browsers.
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.
Fraai stuk Finch!:thumb:Ik heb op mijn blog een artikel staan dat doet hetgeen jij vraagt, maar dan bij datavalidatie. Dat moet denkelijk ook aan te passen zijn aan een gebruik met comboboxen.
http://thefinch.wordpress.com/2008/01/14/excel-unieke-lijst-bij-datavalidatie/
...Code nog iets uitgebreid met een sorteerfunctie op de linker box. Bij het openen worden de namen gesorteerd en ook zo bij het eventueel terugplaatsen van een naam/namen van rechts naar links...
Groet, Leo
'Add the sorted array back to the listbox
For i = LBound(vaItems, 1) To UBound(vaItems, 1)
oLb.AddItem vaItems(i, 0)
Next i
oLb.List = vaItems
...Dank voor de input. Ook al had ik eea niet zelf geschreven, ga ik hier toch ff mee aan de bak!
Groet, Leo
Private Sub ComboBox1_Change()
wijzig
End Sub
Private Sub ComboBox2_Change()
wijzig
End Sub
Private Sub ComboBox3_Change()
wijzig
End Sub
Private Sub ComboBox4_Change()
wijzig
End Sub
Private Sub wijzig()
sq = Split("Anja|Bea|Cees|Daan", "|")
If ComboBox1.Value <> "" Then sq = Filter(sq, ComboBox1.Value, False)
If ComboBox2.Value <> "" Then sq = Filter(sq, ComboBox2.Value, False)
If ComboBox3.Value <> "" Then sq = Filter(sq, ComboBox3.Value, False)
If ComboBox4.Value <> "" Then sq = Filter(sq, ComboBox4.Value, False)
ComboBox1.List = Split(IIf(ComboBox1.Value = "", "", ComboBox1.Value & "|") & Join(sq, "|"), "|")
ComboBox2.List = Split(IIf(ComboBox2.Value = "", "", ComboBox2.Value & "|") & Join(sq, "|"), "|")
ComboBox3.List = Split(IIf(ComboBox3.Value = "", "", ComboBox3.Value & "|") & Join(sq, "|"), "|")
ComboBox4.List = Split(IIf(ComboBox4.Value = "", "", ComboBox4.Value & "|") & Join(sq, "|"), "|")
End Sub
Private Sub Worksheet_Activate()
sq = Split("Anja|Bea|Cees|Daan", "|")
ComboBox1.List = sq
ComboBox2.List = sq
ComboBox3.List = sq
ComboBox4.List = sq
End Sub
Dank voor je onderkoelde reaktie.
Meteen dan een 'terugvraag'. Ik wilde natuurlijk een lus gebruiken, maar vond geen mogelijkheid om zoiets als Me("ComboBox" & j) aan de praat te krijgen. In een userform is dat immer een handige methode, maar als de activeX-controls in een werkblad staan werkt het blijkbaar niet, hoewel Me wel naar het werkblad verwijst.
Weet iemand een oplossing ?
Private Sub wijzig()
sq = Split("Anja|Bea|Cees|Daan", "|")
For i = 1 To Me.OLEObjects.Count
If InStr(Me.OLEObjects(i).Name, "ComboBox") > 0 Then
If Me.OLEObjects(i).Object.Value <> "" Then sq = Filter(sq, Me.OLEObjects(i).Object.Value, False)
End If
Next i
For i = 1 To Me.OLEObjects.Count
If InStr(Me.OLEObjects(i).Name, "ComboBox") > 0 Then
Me.OLEObjects(i).Object.List = Split(IIf(Me.OLEObjects(i).Object.Value = "", "", Me.OLEObjects(i).Object.Value & "|") & Join(sq, "|"), "|")
End If
Next i
End Sub
Private Sub wijzig()
sq = Split("Anja|Bea|Cees|Daan", "|")
For i = 1 To 4
If Me.OLEObjects("Combobox" & i).Object.Value <> "" Then sq = Filter(sq, Me.OLEObjects("Combobox" & i).Object.Value, False)
Next i
For i = 1 To 4
Me.OLEObjects("Combobox" & i).Object.List = Split(IIf(Me.OLEObjects("Combobox" & i).Object.Value = "", "", Me.OLEObjects("Combobox" & i).Object.Value & "|") & Join(sq, "|"), "|")
Next i
End Sub
Private Sub ComboBox1_Change()
wijzig
End Sub
Private Sub ComboBox2_Change()
wijzig
End Sub
Private Sub ComboBox3_Change()
wijzig
End Sub
Private Sub ComboBox4_Change()
wijzig
End Sub
Private Sub wijzig()
sq = Split("Anja|Bea|Cees|Daan", "|")
for j=1 to 4
with OLEobjects("Combobox" & j).Object
If .Value <> "" Then sq = Filter(sq, .Value, False)
end with
Next
for j=1 to 4
with OLEobjects("Combobox" & j).Object
.List = Split(IIf(.Value = "", "", .Value & "|") & Join(sq, "|"), "|")
end with
Next
End Sub
Private Sub Worksheet_Activate()
sq = Split("Anja|Bea|Cees|Daan", "|")
For j= 1 to 4
OLEobjects("ComboBox" & j).Object.List = sq
Next
End Sub
@Finch
Bedankt !
Dan wordt het
Code:Private Sub wijzig() sq = Split("Anja|Bea|Cees|Daan", "|") for j=1 to 4 with Me.OLEobjects("Combobox" & j) If .Value <> "" Then sq = Filter(sq, .Value, False) end with Next for j=1 to 4 with Me.OLEobjects("Combobox" & j) .List = Split(IIf(.Value = "", "", .Value & "|") & Join(sq, "|"), "|") end with Next End Sub
Private Sub wijzig()
sq = Split("Anja|Bea|Cees|Daan", "|")
for j=1 to 4
with Me.OLEobjects("Combobox" & j)[COLOR="red"].Object[/COLOR]
If .Value <> "" Then sq = Filter(sq, .Value, False)
end with
Next
for j=1 to 4
with Me.OLEobjects("Combobox" & j)[COLOR="red"].Object[/COLOR]
.List = Split(IIf(.Value = "", "", .Value & "|") & Join(sq, "|"), "|")
end with
Next
End Sub
Dat was even schrikken van de hoeveelheid reacties
@snb
Als ik jou bestandje dat je gepost hebt in reactie #10 open en een van de comboboxen kan ik geen keuze maken uit iets.
Hoe kan dat of moet ik eerst nog iets anders doen.
Het bestandje moet, zoals ik in mijn vorige reactie al vermelde, ook door leken op het gebied van excel gebruikt worden.
Dus meerdere handelingen verrichten voordat je je keuze kunt maken is niet echt handig.
We gebruiken essentiële cookies om deze site te laten werken, en optionele cookies om de ervaring te verbeteren.