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 CommandButton
BildScreenshot zu CommandButton CommandButton-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
Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Textboxen in Userform füllen

Betrifft: Textboxen in Userform füllen von: Christian
Geschrieben am: 23.04.2014 17:47:44

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

  

Betrifft: AW: Textboxen in Userform füllen von: Hajo_Zi
Geschrieben am: 23.04.2014 17:50:06

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)

GrußformelHomepage


  

Betrifft: AW: Textboxen in Userform füllen von: Christian
Geschrieben am: 23.04.2014 18:27:47

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


  

Betrifft: AW: Textboxen in Userform füllen von: Hajo_Zi
Geschrieben am: 23.04.2014 18:37:07

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


  

Betrifft: AW: Textboxen in Userform füllen von: Christian
Geschrieben am: 23.04.2014 18:51:34

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


  

Betrifft: AW: Textboxen in Userform füllen von: Beverly
Geschrieben am: 23.04.2014 18:44:38

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

GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Textboxen in Userform füllen von: Christian
Geschrieben am: 23.04.2014 18:57:08

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


  

Betrifft: AW: Textboxen in Userform füllen von: Beverly
Geschrieben am: 23.04.2014 19:05:29

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

GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Textboxen in Userform füllen von: Christian
Geschrieben am: 23.04.2014 19:56:26

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


  

Betrifft: AW: Textboxen in Userform füllen von: Hajo_Zi
Geschrieben am: 23.04.2014 20:01:54

Halo Christian,

nur wenige sehe Deine Datei und können genauere Angaben machen.

Gruß Hajo


  

Betrifft: AW: Textboxen in Userform füllen von: Christian
Geschrieben am: 23.04.2014 21:05:38

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



  

Betrifft: AW: Textboxen in Userform füllen von: Beverly
Geschrieben am: 23.04.2014 20:04:45

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.



GrußformelBeverly's Excel - Inn


  

Betrifft: @Berverly von: ChristianM
Geschrieben am: 23.04.2014 20:30:21

Hallo Beverly,
bei Me.Controls("TextBox" & intListIndex + 1) = "" ist "intListIndex" falsch

Gruß
ChristianM


  

Betrifft: AW: @Berverly von: Beverly
Geschrieben am: 23.04.2014 21:02:21

Hi Christian,

weshalb sollte das falsch sein?


GrußformelBeverly's Excel - Inn


  

Betrifft: Ergänzung von: Beverly
Geschrieben am: 23.04.2014 21:18:02

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.


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Ergänzung von: Christian
Geschrieben am: 23.04.2014 21:24:37

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


  

Betrifft: AW: Ergänzung von: Beverly
Geschrieben am: 23.04.2014 21:39:19

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

GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Ergänzung von: Christian
Geschrieben am: 23.04.2014 22:02:51

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


  

Betrifft: AW: Ergänzung von: Beverly
Geschrieben am: 23.04.2014 23:27:06

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

GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Ergänzung von: Christian
Geschrieben am: 24.04.2014 07:18:29

Hallo Karin,

Danke, so fkt. es!


MfG Christian


  

Betrifft: AW: Textboxen in Userform füllen von: Christian
Geschrieben am: 23.04.2014 20:52:01

Hallo Karin,

doch, die Textboxen heißen nach wie vor TextBox1 bis Textbox14.
Wie geschrieben, es funktioniert ja mit dem CmdButton!

MfG Christian


  

Betrifft: AW: Textboxen in Userform füllen von: Beverly
Geschrieben am: 23.04.2014 21:05:58

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


GrußformelBeverly's Excel - Inn


 

Beiträge aus den Excel-Beispielen zum Thema "Textboxen in Userform füllen"