keuzelijst en macro

Status
Niet open voor verdere reacties.

frankli

Gebruiker
Lid geworden
20 mrt 2009
Berichten
38
Hi,

Ik heb een keuzelijst met invoervak gemaakt via Toolbar in Excel, zie bijlage. Ik wil graag nu een macro toevoegen: als iemand een naam heeft geselecteerd, dan zie ik een msgbox.
Bijvoorbeeld: als iemand Li heeft geselecteerd, dan verschijnt een message “HI” .

Wie kan me helpen?

Groetjes,
Frank
 

Bijlagen

  • 01.gif
    01.gif
    77,2 KB · Weergaven: 136
  • kiezen.xls
    kiezen.xls
    20 KB · Weergaven: 95
Hoi frankli,

Met een macro aleen ben je er niet:

1. Wijs een nieuwe macro toe aan je keuzelijst-besturingselement

2. Voeg de volgende code toe aan de macro:
Code:
Sub Vervolgkeuzelijst1_BijWijzigen()
    
    Dim oRange As Range
    
    Set oRange = Intersect(ShMacro.Range("Lijst"), ShMacro.Range("Lijst").Columns(1))
    
    MsgBox oRange.Cells(ShMacro.Range("Koppeling")), vbInformation
    
End Sub

3. Definieer namen voor de celadressen van invoerbereik en koppeling mbt de keuzelijst:
Invoerbereik: "Lijst"
Koppeling: "Koppeling"

4. Wijzig de celadressen in deze namen genoemd in het besturingelement

Zie bijlage voor een werkend voorbeeld

Het is denk ik handiger om via Menu / Data / Validatie een keuzelijst te maken.
Je kunt denk gewoon de celwaarde via VBA uitvragen.

Succes ermee!
 

Bijlagen

Laatst bewerkt:
Hoi Enijhuis,

Dank je wel voor je reactie.
1. Ik heb gezien op deze site dat een variabel gebuikt worden, maar ik weet niet hoe je het in Nederlands moet gebruiken. Hier gebruikt hij in het engels: ComboBox1.Text

http://www.mrexcel.com/archive/Controls/12646.html

2. Als ik validatie ga gebruiken, dan zien mensen de drop-down pijltje niet als ze de muis niet in de cel klikt.

3. Normaal gesproken is VBA code in het engels, waarom hier gaat het vanzelf: Vervolgkeuzelijst1_BijWijzigen
is Vervolgkeuzelijst1 gelijk aan het engels: ComboBox1? Hoe kan ik de naam van de keuzelijst weten als ik meer keuzelijst heb? Kan ik zelf een naam geven, bv: Kiezenlijst.


Groetjes,
Frank
 
Laatst bewerkt:
Hoi Frank,

De Nederlandse vertaling van een ComboBox is inderdaad een keuzelijst.

In Excel zjin er drie 'soorten' keuzelijsten:

1. Een validatiekeuzelijst
2. Jouw 'toolbar'-keuzelijst (via werkbalk 'Formulieren)'
3. Een VBA-keuzelijst (via werkbalk 'Werkset besturingselementen')

Je haalt 2. en 3. nu door elkaar. Het is mogelijk elk van de drie soorten een eigen naam te geven.

Emiel
 
Laatst bewerkt:
Hoi Enijhuis,

1. Hier gaat ook over de Toolbar keuzelijt:
http://www.mrexcel.com/archive/Controls/12646.html

Dus hoe kan ik deze variabel gebruiken: ComboBox1.Text

Ik heb zoiets geschreven, maar het werkt niet:

Code:
Private Sub Vervolgkeuzelijst1_BijWijzigen()
If  Vervolgkeuzelijst1.Value = "Li" Then
MsgBox ("HI")
End If
End Sub

Of:

Code:
Private Sub Vervolgkeuzelijst1_BijWijzigen()
If  Vervolgkeuzelijst1.text = "Li"  Then
MsgBox ("HI")
End If
End Sub

Dit werkt ook niet. :shocked:


2. Wat is hier Columns(1) voor in je code?

Groetjes,
Frank
 
Laatst bewerkt:
Zoals ik al aangaf; Je haalt twee typen keuzelijsten door elkaar.

De code in mijn vorige post hoort bij type 2, De code in jouw link is van type 3. Dat werkt dus niet.

Je kunt dus beter een 'VBA'-keuzelijst op het werkblad zetten:
-Activeer Werkbalk Werkset besturingselementen
-Selecteer en sleep keuzelijst met invoervak

Plak dan de code uit jouw link achter het bijbehorende werkblad.

Succes
 
Laatst bewerkt:
Dank je wel. Ik was in de war geweest met deze 3 manieren.
Je hebt gezegt:
3. Een VBA-keuzelijst (via werkbalk 'Werkset besturingselementen')
Maar hoe kan ik waarden toevoegen in de keuzelijst via deze manier?

groetjes,
Frank
 
hoi frankli,

Zie bijlage.
Het antwoord staat trouwens ook in jouw link
 

Bijlagen

Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan