Werte abgleichen u. in ListBox und TextBox anzeige

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm ListBox TextBox MsgBox
Bild

Betrifft: Werte abgleichen u. in ListBox und TextBox anzeige
von: benny
Geschrieben am: 09.06.2015 18:15:24

Hallo,
ich habe folgendes Problem:
Letztens hatte mir "ransi" hier aus dem Forum schon mit folgendem Code geholfen.
Dabei ging es um folgende Situation:
Ich habe eine Tabelle mit drei Spalten. In Spalte A sind verschiedene Namen und in Spalte B verschiedene Codes aufgelistet. Jedem Code sind unterschiedlich viele Namen zugeordnet. Zum Beispiel gehören zum Code 509080 die Namen Hans, Otto und Gustav. Des Weiteren sind in der Spalte C noch Kategorien zugeordnet. Beispielsweise gehört der Code 509080 zur Kategorie Männer.
Option Explicit


Private Sub Button1_Click()
    Dim Z As Long, temp As Long, i As Long, zeile As Long
    Dim x As String
    Z = Sheets(1).UsedRange.Rows.Count
    x = TextBox1
    temp = 0
    Redim Liste(temp)
    For i = 2 To Z
        If Cells(i, 2) = x Then
            Redim Preserve Liste(temp)
            Liste(temp) = Cells(i, 1).Value
            temp = temp + 1
        End If
    Next
    If temp > 0 Then
        Unload Me
        With UserForm2
            .ListBox1.List = Liste
            .Show
        End With
    Else
        MsgBox "Code nicht vorhanden!", vbExclamation
        TextBox1 = ""
    End If
End Sub
Punkt 1: Ich habe zwei Userforms erstellt. Mit der ersten Userform soll mit einer  _
Textbox ein jeweiliger Code eingebenen werden und die dazugehörigen Namen in einer Listbox in   _
_
einer zweiten Userform aufgelistet werden. 
Punkt 2: Der eingegebene Code soll gleichzeitig auch mit der Spalte Kategorie  _
abgeglichen werden und die Dazugehörige in einer Textbox ebenfalls auf der Userform2 ausgegeben  _
 _
werden. 
--> Punkt 1 funktioniert durch die Hilfe von ransi (siehe Code oben) super, aber bei Punkt 2  _
steh ich nach Tagen des Versuchens einfach nur auf dem Schlauch. 
Vielen Dank im Voraus für eure Unterstützung. 

Bild

Betrifft: AW: Werte abgleichen u. in ListBox und TextBox anzeige
von: Michael
Geschrieben am: 10.06.2015 03:02:27
Hallo Benny,
mangels Datei kann ich es zwar nicht testen, aber von der Logik her müßte es (bis auf einen evtl. Syntaxfehler) im Prinzip so funktionieren:

Option Explicit
Private Sub Button1_Click()
    Dim Z As Long, temp As Long, i As Long, zeile As Long
    Dim x As String, kategorie as String
    Z = Sheets(1).UsedRange.Rows.Count
    x = TextBox1
    temp = 0
    Redim Liste(temp)
    For i = 2 To Z
        If Cells(i, 2) = x Then
            Redim Preserve Liste(temp)
            Liste(temp) = Cells(i, 1).Value
            kategorie = Cells(i, 3).Value
            temp = temp + 1
        End If
    Next
    If temp > 0 Then
        Unload Me
        With UserForm2
            .ListBox1.List = Liste
            .TextBox2 = kategorie
            .Show
        End With
    Else
        MsgBox "Code nicht vorhanden!", vbExclamation
        TextBox1 = ""
    End If
End Sub
Die FOR-Schleife durchsucht ja alle Zellen, und falls ein Wert gefunden wird, wird er in die Liste übernommen. Im gleichen Zug kannst Du den Wert aus der Spalte rechts holen und einer Variablen zuweisen. Bei mehreren Listeneinträgen wird sie denn auch überflüssigerweise mehrmals zugewiesen, aber das (Mehrmalige) wird kaum zu Performance-Problemen führen: Hans, Otto und Gustav sind alle "Männer", d.h. die Kategorie sollte ja in allen Fällen identisch sein.
Verbleibt, den Wert des Strings kategorie in die betreffende TextBox zu schreiben (Du mußt halt Deinen Namen einsetzen).
Schöne Grüße,
Michael

Bild

Betrifft: AW: Werte abgleichen u. in ListBox und TextBox anzeige
von: benny
Geschrieben am: 10.06.2015 10:12:30
Danke dir, funkitoniert super genauso wie ich es brauche. Vielen Dank nochmal!

Bild

Betrifft: freut mich, danke für die Rückmeldung
von: Michael
Geschrieben am: 10.06.2015 13:54:52
Hi Benny,
ich hab wohl mit den "pre"s nicht aufgepaßt; mach mal eins zu

.
Ok?
Schöne Grüße,
Michael

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Werte abgleichen u. in ListBox und TextBox anzeige"