Array ListBox zweite Spalte
#11
Ich schicke natürlich gerne auch die ganze Datei.

Als ich vor längerer Zeit eine .xlsm DAtei hier hochgeladen habe,
wurde ich fast gesteinigt. Scheint sich geändert zu haben.

Hier die Datei.


Angehängte Dateien
.xlsm   19-03-03 Laender.xlsm (Größe: 24,22 KB / Downloads: 7)
Top
#12
(03.03.2019, 21:33)tmessers schrieb: Als ich vor längerer Zeit eine .xlsm DAtei hier hochgeladen habe,
wurde ich fast gesteinigt. Scheint sich geändert zu haben.

Hallo,

hier wird niemand gesteinigt. :21:

Ich rate Antwortern (also auch mir selber) gerne zu folgendem Vorgehen:
- Du liest eine Frage und dir passt --- die Frage/der Ton/die Art/der Aufbau/der Satzbau/die Rechtschreibung/keine Datei dabei/eine XLSM, XLSB Datei dabei/ --- nicht, gehe einfach aus dem Thema raus, zum Nächsten. Das ist entspannter für alle Beteiligten. :05:

Ohne grössere Änderungen kannst du dein Vorhaben (kein Fehler bei "a", Länderkürzel dabei, und wenn Textbox leer dann auch Listbox leer) so umsetzen: :21:


Code:
Private Sub TextBox2_Change()
    Dim laender()
    Dim laenderausw()
    Dim laenge As Integer
    Dim i As Integer
    If Trim(TextBox2.Text) = "" Then
        ListBox1.Clear
    Else
        laenge = WorksheetFunction.CountA(Rows(1))
        suchbeg = UserForm1.TextBox2.Value
        ReDim laender(laenge)
        For i = 1 To laenge
            If UCase(Cells(1, i).Value) Like UCase(CStr(suchbeg & "*")) Then
                laender(i) = Cells(1, i).Value & " (" & Cells(2, i).Value & ")"
                If laender(i) <> "" Then
                    ReDim Preserve laenderausw(j)
                    laenderausw(j) = laender(i)
                    j = j + 1
                End If
            End If
        Next i
        With UserForm1.ListBox1
            .List = laenderausw
        End With
    End If
End Sub

Arbeite mit Einrückungen im Code - das lässt sich leichter lesen.
[-] Folgende(r) 3 Nutzer sagen Danke an Gast für diesen Beitrag:
  • Käpt'n Blaubär, tmessers, schauan
Top
#13
Hi

Variante mit zwei Spalten in der Listbox.

Setze die ColumnCount Eigenschaft der Listbox auf 2.
Code:
Private Sub TextBox2_Change()
Dim Werte As Variant
Dim i As Integer

i = Sheets("Tabelle1").Cells(1, Columns.Count).End(xlToLeft).Column - 2
Werte = Range("C1").Resize(2, i).Value

With ListBox1
 .Clear
   For i = 1 To UBound(Werte, 2)
     If InStr(1, Werte(1, i), TextBox2.Value, 1) = 1 Then
        .AddItem
        .List(.ListCount - 1, 0) = Werte(1, i)
        .List(.ListCount - 1, 1) = Werte(2, i)
     End If
   Next i
End With
End Sub

Gruß Elex
Top
#14
Hallo Case,

Zitat:Ich rate Antwortern (also auch mir selber) gerne zu folgendem Vorgehen:
- Du liest eine Frage und dir passt --- die Frage/der Ton/die Art/der Aufbau/der Satzbau/die Rechtschreibung/keine Datei dabei/eine XLSM, XLSB Datei dabei/ --- nicht, gehe einfach aus dem Thema raus, zum Nächsten. Das ist entspannter für alle Beteiligten. [img]
Dateiupload bitte im Forum! So geht es: Klick mich!

... wo kann ich unterschreiben?  :05:
[-] Folgende(r) 1 Nutzer sagt Danke an Käpt'n Blaubär für diesen Beitrag:
  • schauan
Top
#15
Hallo zusammen,

Zitat:Das ist entspannter für alle Beteiligten.

stimmt schon, und der Fragesteller wundert sich, warum er keine Antwort bekommt.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#16
Hallo Klaus-Dieter,

Zitat:stimmt schon, und der Fragesteller wundert sich, warum er keine Antwort bekommt.

dafür habe ich aber die Gewißheit, ich bin nicht der Einzige im Forum und es wird bestimmt
jemand anderes geben, der mit dem, warum ich mich entschieden habe, nicht zu antworten,
keine Probleme haben wird.
Übrigens, bevor da irgendwelche Gefühle überkochen können, halte ich das für den eleganteren
Weg, nicht zu antworten. In einigen Fällen bin ich ja auch hergegangen und habe später dann
doch noch Beiträge geliefert. Und ja, wenn ich merke, daß es keinen Sinn macht, weil der TE und
ich nicht in der Lage sind, vernünftig miteinander zu kommunizieren, weil die die Chemie einfach
nicht stimmt, dann nehme ich mir das Recht, auszusteigen.


Im übrigen ist das seit Äonen in den Foren so geregelt, daß jeder selber entscheidet, ob er in
das Thema einsteigen will.
Beispielsweise wäre ich nicht bereit, mich in irgendwelchen Sportthemen einzubringen.
Andererseits habe ich auch schon zweimal in einem der Nachbarforen ein Spiel programmiert,
weil die programmtechnische Herausforderung für mich faszinierend war.
Es waren übrigens Strategiespiele, also nicht wirklich Sport  :18: .
Top
#17
@Case: Danke für Deine Lösung. Sie ist gut, trifft jedeoch nicht ganz die Lösung meines Problems mit der Spalte. Da ich den Wert in der zeiten Spalte der Auswahl aus der ListBox in ein
Steuerungselement übergeben möchte, brauche ich den Wert separat. Deine Lösung hinsichtlich der GRoßschreibeung trifft voll ins Schwarze. Da habe ich wieder was gelernt.

@Elex: Deine Lösung trifft genau mein Problem mit der zweiten Spalte.

Ich danke allen für Ihre Antworten und Beiträge.
Top
#18
Hallöchen,

Zitat:stimmt schon, und der Fragesteller wundert sich, warum er keine Antwort bekommt.

In der Regel bekommt der Fragesteller ja eine Antwort. In dem einen oder anderen Fall passiert das lediglich nicht so schnell. Ist sicher meist kein Grund zum  :22:
Andererseits, wie heißt es so schön - Fragen kost' nix  :15: Ich pflichte da aber auch Case und dem Käpt'n bei. Man sollte sich einklinken wenn man am Thema interessiert ist bzw. dran bleiben will und sich nicht nur wegen eines Hinweises beteiligen, wie z.B. dass man keine xlsm herunterlädt oder einem der Begriff "eilt" im Betreff nicht passt oder …
(Eine Ausnahme sind für mich die Links zu CP-Beiträgen - die finde ich sehr wichtig)
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste