Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
540to544
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
540to544
540to544
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Hilfe Combobox Variable

Hilfe Combobox Variable
02.01.2005 16:06:45
Reinhold
Guten Tag,
also ich versuche in einer userform ein feld zu erstellen diese je nach stand einer combobox variabel sein soll, anhand eines beispiels kann ich dies vielleicht besser erklären:
sagen wir ich habe eine combobox bei dem es 5 mögliche zustände gibt (1-5), je nach wahl des zustandes soll in einem bestimte anzahl von feldern erscheinen in die ich daten eingeben kann.
z.b. sagen wir in combobox1 wird 1 gewählt, dann soll irgendwas erscheinen (platzsparend!) in dem z.B. feld1 und feld2 steht und ich diesen Feldern ein wert zuweisen kann.
Wird in Combobox1 der wert 2 gewählt, sollen vier felder erscheinen indem ich was eingeben kann usw.
ich hoffe ich konnte mein problem einigermaßen schilder.
ich wäre für jede hilfe dankbar

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe Combobox Variable
02.01.2005 16:21:21
Bertram
Hallo Reinhold,
meinst du etwas in der Art?
https://www.herber.de/bbs/user/15506.xls
Mußt das Bsp. nur noch auf 5 Frames erweitern.
Gruß
Bertram
AW: Hilfe Combobox Variable
02.01.2005 16:37:07
Reinhold

Private Sub ComboBox1_Change()
Select Case ComboBox1.Value
Case 1
Me.Frame1.Visible = True
Me.Frame2.Visible = False
Case 2
Me.Frame1.Visible = False
Me.Frame2.Visible = True
End Select
End Sub

Diese möglichkeit ist gut, gibt es vielleicht eine Platzsparendere Alternative? Weil wenn ich dann z.B. im combobox1 den wert 5 wähle müsste ich 10 Textboxen einbauen in die Frame.
Anzeige
AW: Hilfe Combobox Variable
02.01.2005 16:41:25
Bertram
Was meinst du mit "platzsparender"?
Wenn du 10 Eingaben machen möchtest bei der Option 5, dann brauchst du auch 10 Textfelder.
Gruß
Bertram
AW: Hilfe Combobox Variable
02.01.2005 16:52:00
Reinhold
Gib es keine möglichkeit z.B. noch eine combobox zu erstellen und nebenan eine textbox zu erstellen und daneben eine button, das ganze soll dann so zustand kommen.
Wenn ich in combobox1 z.b. den wert 3 nehme
soll automatisch in combobox2 die zahlen 1 bis 6 erscheinen, dann wähle ich in combobox2 ein wert z.b. 3 gebe dafür in textbox eine zahl ein und drücke auf den button somit wird der wert in der textbox zu dem wert im combobox2 zugewiesen.
Vielleicht sind meine erwartungen zu hoch, aber irgenwie denke ich das sowas in der art möglich sein muss.
Anzeige
AW: Hilfe Combobox Variable
Ramses
Hallo
warum erstellst du dann die Textfelder nicht zur Laufzeit ?
Kopier mal den Code in eine leere UF und öffne sie dann :-)

Private Sub UserForm_Initialize()
'Variablen setzen
Dim plTop As Integer, plHeight As Integer, plWidth As Integer, plLeft As Integer
Dim ufHeigth As Integer, ufWidth As Integer
Dim hSpace As Integer, vSpace As Integer
Dim i As Integer, n As Integer
Dim MyCtrl As Control
Dim txtBox1 As Integer, txtBox2 As Integer
'Userform erstellen
vSpace = 5
hSpace = 5
plTop = 5
plWidth = 50
plHeight = 15
plLeft = 10
'userformgrösse abfragen
txtBox1 = InputBox("Wieviele Textboxen möchten Sie erstellen", "Initialisierung", 50)
If txtBox1 Mod 10 <> 0 Then
MsgBox "auf die Schnelle nur mit geraden Zahlen"
Exit Sub
End If
If txtBox > 100 Then
MsgBox "Soviele sollten es nicht sein ;-)"
Exit Sub
End If
txtBox2 = InputBox("Wieviele Textboxen sollen untereinander stehen", "Initialisierung", Int(txtBox1 / 5))
If txtBox > txtBox1 Then
MsgBox "Das sind mehr als erstellt werden sollen ;-)"
Exit Sub
End If
ufHeigth = ((txtBox2 * plHeight) + ((txtBox2 * vSpace) + (4 * vSpace))) + 40
ufWidth = (Int((txtBox1 / 10)) * plWidth) + (Int((txtBox1 / 10)) * 10) + (4 * hSpace)
Debug.Print "Höhe: " & ufHeigth
Me.Height = ufHeigth
Me.Width = ufWidth
For i = 1 To (txtBox1 / txtBox2)
For n = 1 To txtBox2
Set MyCtrl = Controls.Add("Forms.Textbox.1")
MyCtrl.Left = plLeft
MyCtrl.Top = plTop
MyCtrl.Width = plWidth
MyCtrl.Height = plHeight
MyCtrl.name = "Textbox" & i
plTop = plTop + plHeight + 5
Next n
plTop = 5
plLeft = plLeft + plWidth + hSpace
Next i
'Schaltfläche hinzufügen
Debug.Print "Top: " & ufHeigth - (2 * plHeight + 20)
Set MyCtrl = Controls.Add("Forms.textbox.1")
MyCtrl.Left = 2 * vSpace
MyCtrl.Top = ufHeigth - (2 * plHeight + 20)
MyCtrl.Width = (3 * plWidth) + (2 * plWidth)
MyCtrl.Height = plHeight
MyCtrl.name = "txtLabel" & i
MyCtrl.Value = "That's real VBA Life ;-)"
End Sub

Gruss Rainer
Anzeige
Das ist dann die Deluxe-Version:-)
02.01.2005 16:52:56
Bertram
Hallo Rainer,
das gefällt mir gut. Vorallem die MsgBox "..auf die Schnelle..":-)
Gruß
Bertram
AW: Das ist dann die Deluxe-Version:-)
02.01.2005 17:40:57
Reinhold
Ja alles schön und gut, das Problem besteht immernoch im Platz? Meine userform besteht ja nicht nur auch texboxen sondern da sind noch ne ganze menge andere zeugs, deswegen frag ich nochmal.
Gib es keine möglichkeit z.B. noch eine combobox zu erstellen und nebenan eine textbox zu erstellen und daneben eine button, das ganze soll dann so zustand kommen.
Wenn ich in combobox1 z.b. den wert 3 nehme
soll automatisch in combobox2 die zahlen 1 bis 6 erscheinen, dann wähle ich in combobox2 ein wert z.b. 3 gebe dafür in textbox eine zahl ein und drücke auf den button somit wird der wert in der textbox zu dem wert im combobox2 zugewiesen.
Vielleicht sind meine erwartungen zu hoch, aber irgenwie denke ich das sowas in der art möglich sein muss.


Ich danke nochmal für eure bemühungen :-)
Anzeige
AW: Das ist dann die Deluxe-Version:-)
Ramses
Hallo
Sorry,... was erwartetst du denn wirklich ?
"...Ja alles schön und gut, das Problem besteht immernoch im Platz? ..."
Wenn du zusätzliche Elemente haben willst, dann brauchen die eben Platz.
"...Wenn ich in combobox1 z.b. den wert 3 nehme
soll automatisch in combobox2 die zahlen 1 bis 6 erscheinen,..."
Wo ist das Problem?
Schau mal in der Online-Hilfe unter "AddItem"
"...dann wähle ich in combobox2 ein wert z.b. 3 gebe dafür in textbox eine zahl ein und drücke auf den button somit wird der wert in der textbox zu dem wert im combobox2 zugewiesen...."
Entschuldige bitte,... aber für was soll das denn gut sein ?
Hast du dir mal durchgelesen was du da geschrieben hast ?
Warum willst du in einer Textbox eine Zahl eingeben, die dann zum Wert von Combobox 2 addiert wird ? Wieso bietest du das nicht im voraus an ?
Ausserdem ist das doch kein Problem einfach die Textbox mit dem Wert aus der Combobox zu addieren/subtrahieren/multiplizieren/dividieren oder was du sonst auch immer willst.
Was das ganze nun mit zusätzlichen Elementen wie Textboxen, Comboboxen usw. zu tun haben soll, .... erschliesst sich mir leider nicht :-)
Gruss Rainer
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige