Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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)
Antworten Top
#12
(03.03.2019, 20: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.
________
Servus
Case
[-] Folgende(r) 3 Nutzer sagen Danke an Case für diesen Beitrag:
  • Käpt'n Blaubär, tmessers, schauan
Antworten 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
Antworten 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:
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
[-] Folgende(r) 1 Nutzer sagt Danke an Käpt'n Blaubär für diesen Beitrag:
  • schauan
Antworten 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
Antworten 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: .
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten 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.
Antworten 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)
Antworten Top


Gehe zu:


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