Microsoft Excel

Herbers Excel/VBA-Archiv

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

Steuerelement Inhalt in Abhängigk. Index QuelleTab


Betrifft: Steuerelement Inhalt in Abhängigk. Index QuelleTab von: Christian
Geschrieben am: 14.07.2018 08:39:18

Hallo zusammen,

ich will bestimmte Steuerelemente in Abhängigkeit des Index der Datenquelle (Tabelle) eines anderen Steuerelements befüllen. Eigentlich dachte ich, dass ich das selbst hinbekomme, aber dem ist scheinbar nicht so...

Konkret soll es wie Index mit Vergleich funktionieren.
Es soll den Index der Eingabe TextBox1 innerhalb der Tabelle "Quelle" in Spalte 2 (B) finden.

Somit, Change TextBox1:
- ComboBox1 = Index TextBox1 Spalte 1 (A)
- TextBox 2 = Index TextBox1 Spalte 3 (C)

UND für Change ComboBox1 soll es dann so aussehen:
- TextBox 1 = Index ComboBox1 Spalte 2 (B)
- TextBox 2 = Index ComboBox1 Spalte 3 (C)

Ich glaub das ist recht einfach, aber ich krieg diese Spalten-Angabe mal wieder nicht unter. Man kommt um einen Zwischenschritt nicht rum, oder?

Vielen Dank im Voraus für die Hilfe!

Schönen Samstag und viele Grüße,

Christian

  

Betrifft: Beispieldatei! o.T. von: Sepp
Geschrieben am: 14.07.2018 08:46:13



 ABCDEF
1Gruß Sepp
2
3



  

Betrifft: AW: Beispieldatei! o.T. von: Christian
Geschrieben am: 14.07.2018 09:31:51

Hallo Sepp,

okay, gerne!
Ich dachte in diesem Fall reicht die Beschreibung, auch weil das Ganze jetzt hoffentlich nicht zu verwirrend wird. Ich hab im Code bei den beiden entsprechenden Stellen so viel wie möglich kommentiert.
Hoffe du oder Ihr versteht was ich versuche zu sagen. Ich denke es wird dir oder euch aber wahrscheinlich eh auffallen, sollte das ein Problem sein.
Das erkennt aber natürlich jetzt nur in dem Gesamt-Zusammenhang, auf den ich vorher bewusst nicht eingegangen bin.

https://www.herber.de/bbs/user/122673.xlsm

Vielen Dank schon mal für die Hilfe im Voraus!

Viele Grüße,
Christian


  

Betrifft: AW: Beispieldatei! o.T. von: Sepp
Geschrieben am: 14.07.2018 11:09:29

Hallo Christian,

vom Prinzip her so.

Private Sub TextBox_Bezeichnung_Change()
  Dim Zeile As Long, varRet As Variant

  If Trim(Me.TextBox_Bezeichnung) = "" Then Exit Sub

  For Zeile = Me.ListBox_Auswahl.ListCount - 1 To 0 Step -1
    If InStr(1, Me.ListBox_Auswahl.List(Zeile), Me.TextBox_Bezeichnung, vbTextCompare) = 0 Then
      Me.ListBox_Auswahl.RemoveItem Zeile
    End If
  Next


  varRet = Application.Match(TextBox_Bezeichnung & "*", Tabelle1.Range("B:B"), 0)
  If IsNumeric(varRet) Then
    If varRet > 1 Then
      ComboBox_Nummer = Tabelle1.Cells(varRet, 1)
      TextBox_Menge = Tabelle1.Cells(varRet, 3)
    End If
  End If

End Sub

Private Sub ComboBox_Nummer_Change()
  Dim varRet As Variant
  
  If IsNumeric(ComboBox_Nummer) Then
    varRet = Application.Match(CLng(ComboBox_Nummer), Tabelle1.Range("A:A"), 0)
    If IsNumeric(varRet) Then
      If varRet > 1 Then
        TextBox_Bezeichnung = Tabelle1.Cells(varRet, 2)
        TextBox_Menge = Tabelle1.Cells(varRet, 3)
      End If
    End If
  End If

End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3



  

Betrifft: AW: Beispieldatei! o.T. von: Christian
Geschrieben am: 14.07.2018 12:25:29

Hallo Sepp,

super, DANKE!!! Habe es eben getestet und bei Eingabe über die Combobox läuft alles perfekt.
Nur teils bei Eingabe über TextBox_Bezeichnung gibt es Probleme.
Wenn ich bspw. "A" eingebe, wird direkt die erste Lösung aus der Datenquelle verwendet und dann automatisch in der TextBox_Bezeichnung vervollständigt.
Ich habe da trotz diverser Einträge mit "A", keine Möglichkeit über die Listbox einen Anderen anzuwählen oder durch Eingabe weiterer Zeichen die Auswahl auf eine Möglichkeit zu begrenzen.

Siehst du dafür noch einen Lösungsansatz? Hab es auch eben nochmals getestet, vorher wurde nichts automatisch vervollständigt - klar, da wurden auch noch nicht die anderen SE befüllt.

Ansonsten läuft es echt wie gewünscht, letztlich verstehe ich warum ich es selbst nicht hingebracht habe, teils kenne ich die Befehle gar nicht, die du dafür verwendet hast.

Viele Grüße,
Christian


  

Betrifft: AW: Beispieldatei! o.T. von: Sepp
Geschrieben am: 14.07.2018 12:58:39

Hallo Christian,

in Projekten bei denen 'Option Explicit' nicht gesetzt ist, mag ich gar nicht gerne begutachten!

Probier es so.

'An den Anfang des Modules! 
Private pbolSkip As Boolean

Private Sub TextBox_Bezeichnung_Change()
  Dim Zeile As Long, varRet As Variant
  
  If Not pbolSkip Then
    pbolSkip = True
  
    If Trim(Me.TextBox_Bezeichnung) = "" Then Exit Sub

    For Zeile = Me.ListBox_Auswahl.ListCount - 1 To 0 Step -1
      If InStr(1, Me.ListBox_Auswahl.List(Zeile), Me.TextBox_Bezeichnung, vbTextCompare) = 0 Then
        Me.ListBox_Auswahl.RemoveItem Zeile
      End If
    Next

    varRet = Application.Match(TextBox_Bezeichnung & "*", Tabelle1.Range("B:B"), 0)
    If IsNumeric(varRet) Then
      If varRet > 1 Then
        ComboBox_Nummer = Tabelle1.Cells(varRet, 1)
        TextBox_Menge = Tabelle1.Cells(varRet, 3)
      End If
    End If

    pbolSkip = False
  End If
End Sub

Private Sub ComboBox_Nummer_Change()
  Dim varRet As Variant
  
  If Not pbolSkip Then
    pbolSkip = True
    
    If IsNumeric(ComboBox_Nummer) Then
      varRet = Application.Match(CLng(ComboBox_Nummer), Tabelle1.Range("A:A"), 0)
      If IsNumeric(varRet) Then
        If varRet > 1 Then
          TextBox_Bezeichnung = Tabelle1.Cells(varRet, 2)
          TextBox_Menge = Tabelle1.Cells(varRet, 3)
        End If
      End If
    End If
  
    pbolSkip = False
  End If

End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3



  

Betrifft: AW: Beispieldatei! o.T. von: Christian
Geschrieben am: 14.07.2018 21:56:16

Hallo Sepp,

danke für deine erneute Hilfe, bin dir wirklich sehr dankbar für deine tolle Unterstützung!
Entschuldige die relativ späte Antwort, ich hab den Code aber nun endlich getestet.

Jetzt klappt es viel besser, mir ist nur eine Kleinigkeit aufgefallen:

Suche ich nach "Chris" oder einer Buchstabenkombination innerhalb des Wortes, werden immer die Informationen für "Christian" vervollständigt. Auch wenn ich "Chris" in der ListBox explizit anklicke. Komischerweise tritt dies nicht bei "Nick" und "Nickname" auf.
Jetzt habe ich mal geguckt woran das liegen kann, der einzige Unterschied ist, dass der Index "Nick" kleiner ist als der von "Nickname" (innerhalb der QuelleTab). Bei "Chris" und "Christian" ist es genau andersrum, dort ist der Index "Christian" kleiner.

Falls dir dazu noch etwas einfällt, würde es mich freuen.
Ich bin aber auch mit diesem Stand jetzt schon sehr zufrieden und möchte nicht unverschämt sein.
Auch deshalb lasse ich den Haken jetzt mal draußen.

Viele Grüße,
Christian


Beiträge aus dem Excel-Forum zum Thema "Steuerelement Inhalt in Abhängigk. Index QuelleTab"