Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen

Combox in Userform

Betrifft: Combox in Userform von: ela
Geschrieben am: 29.07.2014 11:50:17

Hallo,

ich habe folgendes Problem.
Ich habe eine userform erstellt in der ich 13 Comboboxen habe, die jeweils mit mehreren Auwahlmöglichkeiten zur Verfügung stehen.
Nun ruft mein Programm die Userform mit

Userform2.show

auf. Diese userform wird bei auffruf durch

Private Sub UserForm_Initialize()
' Die Daten werden im Code Zeilenweise eingetragen
Dim i As Integer
Dim CB As Object

i = 0
For Each CB In UserForm2.Controls

If TypeName(CB) = "ComboBox" Then

If CB.Left = 15 Then

With CB
.AddItem "Bericht"
.AddItem "BKnoten"
.AddItem "Monat"
.AddItem "Monat_ohne_Null"
.AddItem "Jahr"
.AddItem "Abteilung"
.AddItem "Dateiart"
.AddItem ""
.ListIndex = i 'Vorbelegung "Schmitz" bei Formularstart
End With

i = i + 1
end if
end if
next CB

mit Werten befüllt und mit "ListeIndex =1" schon auf einen Vordefinierten Wert gelegt. Jetzt hat der User die Möglichkeit eine Auswahlmögluckeiten zu wählen. Wie kann ich diese Auswahl nun wieder zurück an meine aufrufendes Programm schicken und auslesen lassen?

Habe das ganze schon mit

Userform2.ComboBox1.Value

versucht. jedoch nimmt mein Programm immer den Wert, der durch Linstindex schon gesetzt war.

Was kann ich also ändern, damit nicht der vorausgewählte sondern der vom User ausgewählte genommen wird?

Viele Grüße
Ela

  

Betrifft: AW: Combox in Userform von: ela
Geschrieben am: 29.07.2014 11:51:19

Die aufrufende Prozedur liegt im Tabellenblatt 2, welches "Einstellungen" heißt


  

Betrifft: AW: Combox in Userform von: Hajo_Zi
Geschrieben am: 29.07.2014 11:59:36

Ich baue keine Datei nach, die Zeit hat schon jemand investiert.
Ein Nachbau sieht bestimmt anders aus als das Original.
Ein Link zur Datei wäre nicht schlecht.
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)
Der Dateiname sollte was mit dem Problem zu tun haben.
Ich habe mir z.B. einen Ordner angelegt in dem ich alle Dateien aus dem Internet speichere. Bei Dateinamen wie Test..., Mappe…, Beispiel… wird eine vorhandene überschrieben.
Ein Bild in Excel geöffnet sieht anders aus als das Bild.
Ich habe kein Tool um ein Bild in Excel zu importieren.

GrußformelHomepage


  

Betrifft: Ich habe kein Tool .. von: Rudi Maintaire
Geschrieben am: 29.07.2014 12:45:36

Hallo,
aber anscheinend eins, um blödsinnige Nicht-Antworten zu geben.

Lass es doch einfach sein.

Gruß
Rudi


  

Betrifft: AW: Combox in Userform von: EtoPHG
Geschrieben am: 29.07.2014 12:53:58

Hallo ela,

Da ist vor allem die Frage zu klären, wie die Userform versteckt (Methode .Hide) oder geschlossen (Unload) wird? Wenn letzteres der Fall ist, hast du die Information über den gewählten Eintrag unwiederbringlich verloren. Es geht also nur dann, wenn die UF mit Userform.Hide versteckt wird. Dann sollte dein Code den Wert liefern, der vom Anwender gewählt wurde.

Gruess Hansueli


  

Betrifft: AW: Combox in Userform von: yummi
Geschrieben am: 29.07.2014 13:15:45

Hallo ela,

wie schon erwähnt wurde, wenn du die Userform schliesst (unload) sind alle modalen Variablen der Userform nicht mehr vorhanden. Du kannst also entweder die Userform offen halten um darauf zuzugreifen oder aber in dem event für den Button der das Schliessen auslöst merkst du dir die Werte deiner Comboboxen in einer Variablen Struktur oder in mehreren Variablen, die public sind und zwar vor dem unload. Dann kannst Du bequem auf die Inhalte der Comboboxen zugreifen, von wo immer du willst.

Gruß
yummi


  

Betrifft: AW: Combox in Userform von: ela
Geschrieben am: 29.07.2014 13:45:48

Ok. Klasse.

Hatte es erst versucht das in dem Button der die Userform schließt (Unload me) ich die werte der combobox in variablen einlese und versuche diese aus dem anderen tabellenblatt aus aufzurufen.

Aber mit userform2.hide geht das ja ganz unkompliziert zund funktioniert prima.
Ist es notwendig diese am ende des "normalen" programms zu schließen?

viele grüße und vielen lieben dank

ela


  

Betrifft: AW: Combox in Userform von: yummi
Geschrieben am: 29.07.2014 14:07:53

Hallo ela,

wenn du es sauber machen willst, würde ich die userform spätestens mit Schliessen der Arbeitsmappe unloaden. Ist wie das Zuweisen mit Hilfe von SET, es ist nicht nötig die Variable auf nothing zu setzen aber wesentlich sauberer Stil.

Wenn Du in C Speicher mit alloc erzeugst und ihn niemals freigibst wird dein Rechner bei entsprechender Laufzeit irgendwann abstürzen ;-)

Gruß
yummi


  

Betrifft: AW: Combox in Userform von: Oberschlumpf
Geschrieben am: 29.07.2014 12:52:00

Hi

ne Bsp-Datei wäre wirklich nicht das Verkehrteste!

versuch mal diesen Code im Change-Ereignis der Combobox (ungetetest, weil ja keine Datei vorhanden)

MsgBox ComboBox1.Text
Wenn es funktioniert, wird bei jedem Wertwechsel in Combobox1 der aktuell ausgewählte Wert per MsgBox angezeigt.
Dann müsstest du also ComboBox1.Text und nicht ComboBox1.Value verwenden.

Hilfts?
(wenn nicht, zeig bitte ne Bsp-Datei)

Ciao
Thorsten


 

Beiträge aus den Excel-Beispielen zum Thema "Combox in Userform"