Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1356to1360
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
Textboxen in Userform füllen
23.04.2014 17:47:44
Christian
Hallo Forum,
In einer UF habe ich eine ListBox mit Multiselect, und 14 Textboxen.
Wie weise ich den TextBoxen die jeweilige Auswahl aus der ListBox zu.
Dh. bei drei gewählten Werten TextBox 1 - 3 füllen, bei 14 Werten dann der TextBox 1 - 14?
Gibt es dazu entsprechende Lektüre im Web?
Danke im Voraus!
MfG Christian

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textboxen in Userform füllen
23.04.2014 17:50:06
Hajo_Zi
Hallo Christian,
TextBox1 = ListBox1.List(ListBox1.ListIndex, 0)
TextBox2 = ListBox1.List(ListBox1.ListIndex, 1)
TextBox3 = ListBox1.List(ListBox1.ListIndex, 2)
TextBox4 = ListBox1.List(ListBox1.ListIndex, 3)
TextBox5 = ListBox1.List(ListBox1.ListIndex, 4)
TextBox6 = ListBox1.List(ListBox1.ListIndex, 5)
TextBox7 = ListBox1.List(ListBox1.ListIndex, 6)

AW: Textboxen in Userform füllen
23.04.2014 18:27:47
Christian
Hallo Hajo,
Danke, aber unter welcher Prozedur muss ich den Code zuweisen?
Private Sub ListBox1_Change()
If ListBox1.Tag  "" Then Exit Sub
TextBox1 = ListBox1.List(ListBox1.ListIndex, 0)
TextBox2 = ListBox1.List(ListBox1.ListIndex, 1)
TextBox3 = ListBox1.List(ListBox1.ListIndex, 2)
TextBox4 = ListBox1.List(ListBox1.ListIndex, 3)
TextBox5 = ListBox1.List(ListBox1.ListIndex, 4)
TextBox6 = ListBox1.List(ListBox1.ListIndex, 5)
TextBox7 = ListBox1.List(ListBox1.ListIndex, 6)
TextBox8 = ListBox1.List(ListBox1.ListIndex, 7)
TextBox9 = ListBox1.List(ListBox1.ListIndex, 8)
TextBox10 = ListBox1.List(ListBox1.ListIndex, 9)
TextBox11 = ListBox1.List(ListBox1.ListIndex, 10)
TextBox12 = ListBox1.List(ListBox1.ListIndex, 11)
TextBox13 = ListBox1.List(ListBox1.ListIndex, 12)
TextBox14 = ListBox1.List(ListBox1.ListIndex, 13)
End Sub
Hier wird eine Fehlermeldung aufgezeigt:
Die Eigenschaft List konnte nicht aufgerufen werden. Ungültiges Argument!
Beim Debuggen springt er in Zeile TextBox2.
Was muss wie ich ändern?
MfG Christian

Anzeige
AW: Textboxen in Userform füllen
23.04.2014 18:37:07
Hajo_Zi
Hallo Christian,
Du benutzt den gleichen Code den ich auch benutze in meiner Datei. In meiner Datei geht er. Deine Datei sehe ich nicht.
Gruß Hajo

AW: Textboxen in Userform füllen
23.04.2014 18:51:34
Christian
Hallo Hajo,
hier der gesamte Code:
Private Sub ListBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim i As Integer, n As Integer
Dim tmp As Integer, tmp2 As Integer
tmp = 0
For i = 1 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(i) = True Then
tmp = tmp + 1
End If
If tmp >= 15 Then
MsgBox "Nur 14 Möglichkeiten erlaubt"
tmp2 = 14
For n = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(n) = True And tmp2 >= 1 Then
tmp2 = tmp2 - 1
Else
Me.ListBox1.Selected(n) = False
End If
Next n
Exit Sub
End If
Next i
End Sub
Private Sub ListBox1_Change()
If ListBox1.Tag  "" Then Exit Sub
TextBox1 = ListBox1.List(ListBox1.ListIndex, 0)
TextBox2 = ListBox1.List(ListBox1.ListIndex, 1)
TextBox3 = ListBox1.List(ListBox1.ListIndex, 2)
TextBox4 = ListBox1.List(ListBox1.ListIndex, 3)
TextBox5 = ListBox1.List(ListBox1.ListIndex, 4)
TextBox6 = ListBox1.List(ListBox1.ListIndex, 5)
TextBox7 = ListBox1.List(ListBox1.ListIndex, 6)
TextBox8 = ListBox1.List(ListBox1.ListIndex, 7)
TextBox9 = ListBox1.List(ListBox1.ListIndex, 8)
TextBox10 = ListBox1.List(ListBox1.ListIndex, 9)
TextBox11 = ListBox1.List(ListBox1.ListIndex, 10)
TextBox12 = ListBox1.List(ListBox1.ListIndex, 11)
TextBox13 = ListBox1.List(ListBox1.ListIndex, 12)
TextBox14 = ListBox1.List(ListBox1.ListIndex, 13)
End Sub
Was muss man wie ändern?
MfG Christian

Anzeige
AW: Textboxen in Userform füllen
23.04.2014 18:44:38
Beverly
Hi Christian,
für einen CommandButton:
Private Sub CommandButton1_Click()
Dim intSelected As Integer
Dim intListIndex As Integer
intSelected = 1
With ListBox1
For intListIndex = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(intListIndex) Then
Me.Controls("TextBox" & intSelected) = ListBox1.List(intListIndex)
intSelected = intSelected + 1
End If
Next intListIndex
End With
End Sub


AW: Textboxen in Userform füllen
23.04.2014 18:57:08
Christian
Hallo Karin,
Dein Code funktioniert, nur hätte ich es gerne dass die Auswahl sofort übernommen wird.
Wie kann man das lösen?
Kompletter Code sie Antwort auf Hajos Beitrag!
Danke
MfG Christian

Anzeige
AW: Textboxen in Userform füllen
23.04.2014 19:05:29
Beverly
Hi Christian,
Private Sub ListBox1_Change()
Dim intSelected As Integer
Dim intListIndex As Integer
intSelected = 1
With ListBox1
For intListIndex = 0 To ListBox1.ListCount - 1
Me.Controls("TextBox" & intListIndex + 1) = ""
If ListBox1.Selected(intListIndex) Then
Me.Controls("TextBox" & intSelected) = ListBox1.List(intListIndex)
intSelected = intSelected + 1
End If
Next intListIndex
End With
End Sub


AW: Textboxen in Userform füllen
23.04.2014 19:56:26
Christian
Hallo Karin,
danke Dir, aber das will nicht so richtig :-(
Er bleibt hier stehen:
Das angegebene Objekt konnte nicht gefunden werden.
Me.Controls("TextBox" & intListIndex + 1) = ""
Ich arbeite jetzt erstmal mit dem CmdButton, lasse den Thread trotzdem noch für weiter Vorschläge offen.
Danke
MfG Christian

Anzeige
AW: Textboxen in Userform füllen
23.04.2014 20:01:54
Hajo_Zi
Halo Christian,
nur wenige sehe Deine Datei und können genauere Angaben machen.
Gruß Hajo

AW: Textboxen in Userform füllen
23.04.2014 21:05:38
Christian
Hallo Hajo,
die Datei ist recht groß, deshalb ist ein Upload schlecht machbar.
Anbei ein Auszug,
https://www.herber.de/bbs/user/90327.xlsm
wie gesagt bzw. geschrieben, es funktioniert nur die Version mit der Übergabe mittels CmD Button!
MfG Christian

AW: Textboxen in Userform füllen
23.04.2014 20:04:45
Beverly
Hi Christian,
heißen deine TextBoxen plötzlich nicht TextBox1 bis TextBox14? Du hattest dochgeschrieben, dass der Code mit dem CommandButton funktioniert - weshalb sollte er das nun plötzlich nicht mehr? Ich habe den Code bei mir getestet - völlig problemlos.


Anzeige
@Berverly
23.04.2014 20:30:21
ChristianM
Hallo Beverly,
bei Me.Controls("TextBox" & intListIndex + 1) = "" ist "intListIndex" falsch
Gruß
ChristianM

AW: @Berverly
23.04.2014 21:02:21
Beverly
Hi Christian,
weshalb sollte das falsch sein?


Ergänzung
23.04.2014 21:18:02
Beverly
Hi Christian,
du hast (in deiner hochgeladenen Arbeitsmappe) 14 TextBoxen, aber mehr als 14 Einträge in der ListBox - deshalb der Fehler.
Wie soll das ganze denn ablaufen, falls mehr als 14 Einträge ausgewählt werden? Die könnten dann doch gar nicht angezeigt werden. Dein Vorhaben hat als erstmal schon einen generellen Haken und du musst dir klarwerden, was genau du machen willst.


Anzeige
AW: Ergänzung
23.04.2014 21:24:37
Christian
Hallo Karin,
ja, es sind mehr als 14 Einträge in der Listbox, man kann aber nur 14 max. anklicken!
Ziel ist es, 1 bis 14 Einträge auswählen und in die TB´s zu übernehmen.
Wie gesagt, mit Deinem Code für die CB geht´s, alles andere erzeugt Fehler!
MfG Christian

AW: Ergänzung
23.04.2014 21:39:19
Beverly
Hi Christan,
Private Sub ListBox1_Change()
Dim intSelected As Integer
Dim intListIndex As Integer
intSelected = 1
With ListBox1
For intListIndex = 0 To .ListCount - 1
Me.Controls("TextBox" & intSelected) = ""
If ListBox1.Selected(intListIndex) Then
Me.Controls("TextBox" & intSelected) = .List(intListIndex)
If intSelected > 14 Then
MsgBox "Es wurden mehr als 14 Einträge gewählt"
Exit For
End If
intSelected = intSelected + 1
End If
Next intListIndex
End With
End Sub


Anzeige
AW: Ergänzung
23.04.2014 22:02:51
Christian
Hallo Karin,
ja, so funktioniert es!
Nur eine Sache ist jetzt noch unschön, und zwar wird bei der 15. Auswahl diese auch in der Textbox 15 eingetragen, es kommt zwar die Meldung dass mehr als 14 gewählt wurde, der Text bleibt aber in der TB 15 stehen, da sollen dann aber nur Zahlen eingegeben werden!
Was muss man ändern?
MfG Christian

AW: Ergänzung
23.04.2014 23:27:06
Beverly
Hi Chrisitan,
      For intListIndex = 0 To .ListCount - 1
Me.Controls("TextBox" & intSelected) = ""
If ListBox1.Selected(intListIndex) Then
If intSelected > 14 Then
MsgBox "Es wurden mehr als 14 Einträge gewählt"
Exit For
Else
Me.Controls("TextBox" & intSelected) = .List(intListIndex)
End If
intSelected = intSelected + 1
End If
Next intListIndex


Anzeige
AW: Ergänzung
24.04.2014 07:18:29
Christian
Hallo Karin,
Danke, so fkt. es!
MfG Christian

AW: Textboxen in Userform füllen
23.04.2014 20:52:01
Christian
Hallo Karin,
doch, die Textboxen heißen nach wie vor TextBox1 bis Textbox14.
Wie geschrieben, es funktioniert ja mit dem CmdButton!
MfG Christian

AW: Textboxen in Userform füllen
23.04.2014 21:05:58
Beverly
Hi Christian,
eben, bei dem CommandButton funktioniert es - weshalb solltes es also mit dem anderen Code nicht funktionieren?
https://www.herber.de/bbs/user/90328.xlsm


299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige