ComboBox als Anzeige nutzen
#1
Hallo zusammen  19

Ich wollte wissen, ob man einen Wert auf einem Tabellenblatt beim öffnen des UserForms in einer ComboBox anzeigen kann?

Beispiel:

Ich habe in Zelle A1 den Wert 200

Wenn ich das Userform öffne hätte ich in der ComboBox1 gerne den Wert stehen. Die Combobox dient nur als Anzeige und die Eigenschaft Locked ist auf True gestellt.


Habe es mal so probiert aber da tut sich nicht wirklich was  25

Code:
Private Sub UserForm_Initialize()

   
   With UserForm1.ComboBox1
   
        .AddItem Cells(1, 1).Value
       
    End With

End Sub
   


Können auch Werte angezeigt werden, die mithilfe der Funktion SVERWEIS() im Tabellenblatt angezeigt werden?

LG Primo
Antworten Top
#2
Hallo, 19 

schreibe es so: 21 

Code:
.AddItem Cells(1, 1).Value
.ListIndex = 0

Bedenke, dass er so immer den Wert von A1 des gerade aktiven Tabellenblattes nimmt. Dodgy

Was meinst du mit dem SVERWEIS?
[-] Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:
  • Primo Centurio
Antworten Top
#3
Super funktioniert wunderbar.

Die Frage mit dem SVERWEIS habe ich mir gerade selber beantwortet.

Und zwar wurde der Wert in der Zelle A1 mit der Formel SVERWEIS aus einer Matrix geholt und ich war mir ned sicher ob er dann in der ComboBox auch angezeigt werden kann.  05


LG Primo
Antworten Top
#4
Hallo, 19 

zwei Dinge noch: 21 

Ich nutze gerne das "UserForm_Activate-Ereignis", da es jedesmal beim aktivieren der UserForm aufgerufen wird. Das "UserForm_Initialize-Ereignis" wird nur beim starten der UserForm aufgerufen. Es kommt aber immer auf die Arbeitsweise an.

Du kannst mit "Evaluate" den Wert auch direkt - ohne Umweg über A1 - in der ComboBox anzeigen. Auch hier gilt, wenn du A1 brauchst, dann vergiss es, sonst nimm "Evaluate". Dodgy
Antworten Top
#5
Moin!
Da ich Dir schon etliche Male geholfen habe, darf ich auch mal Kritik loswerden.
Dazu muss ich aber kurz ausholen:
Ich wollte irgendwann (lang ist es her) VBA lernen, weil mir die Programmlogik gefallen hatte.
Ich hatte mir ein Buch gekauft, um die Grundlagen zu erlernen.
Ferner las ich viel in Foren mit, um auch mal die "bekloppten" Wünsche der Threadersteller mitzubekommen und die Lösungen zu analysieren.
(ich hatte damals "nur für mich" Lösungen erstellt, die zwar funktionierten, aber weitab der Lösungen der "alten Hasen" waren)
Selbstverständlich kannte ich damals auch Seiten wie Online-Excel ff.
Ich brauchte ein wenig, um zu verstehen, dass Cells(1, 1).Parent.Parent.Parent auf die Application Excel verwies, aber dies gehört zu einem Objekt-Modell nun mal dazu.
Den Objekt-Katalog (F2 im VBE) hatte ich auch Jahre später nicht sinnvoll genutzt, jedoch war mir die Bedeutung von F1 im VBE durchaus geläufig!
Meine erste Frage in einem Excel-Forum betraf dann die "Umleitung" eines Makros mit Übergabeparametern auf das BeforeRightClick-Event, welches ja (per default) Private ist …

Ach so, ich wollte ja kritisieren:
Ein Forum kann niemals ein Ersatz zum vorbereiteten Lernen sein!
Du kannst noch hunderte dieser Pille-Palle-Fragen stellen, bloß lernen wirst Du so absolut nichts!

Und jetzt kommt die schwierige Lösung des Problems:
Code:
Me.ComboBox1 = Cells(1, 1)

Selbstverständlich musst Du berücksichtigen, dass Cells() ohne Parent sich immer auf das ActiveSheet bezieht.
Und dass sich Me auf das Parent bezieht, solltest Du auch wissen …
(außerdem werden die Default-Eigenschaften (.Value) benutzt, was in den meisten Programmiersprachen so nicht funktioniert)

Gruß Ralf
(der hofft, Dir ein paar Inputs gegeben zu haben)
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Primo Centurio
Antworten Top
#6
Moin Ralf

Klar das darfst du und ich nehme die Kritik gerne an und bin ja auch froh wenn man mir da Mal vor die Füsse schiesst.
Ich werde somit versuchen das "Pille Palle" Zeug selber zu lösen und mir mit den von dir vorgeschlagenen Mitteln helfen.

Danke für deine Ehrlichkeit.

Ich wünsche dir noch einen schönen Abend.

Lg Primo

PS: @Case ich werde mir das Evaluate mal genauer anschauen.
Antworten Top
#7
Bitte, sehe nicht nach 'Evaluate'; das bringt hier nichts.


Code:
Private Sub Userform_Initialize()
  Combobox1.List = cells(1).currentregion.columns(1)
  ComboBox1.listindex=0
End Sub

Zum Studium: https://www.snb-vba.eu/VBA_Fill_combobox...ox_en.html
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste