MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 14.03.2019, 15:51   #1
Starfish
MOF User
MOF User
Standard VBA - Listbox füllen unter Bedingung ähnlicher Werte

Hallo zusammen,

ich habe auf einer User-Form eine Listbox, die mit Werten gefüllt wird, wenn in einer Textbox ein bestimmter Wert steht.
Zusätzlich schaut sie noch nach einem weiteren Wert der aber festgelegt ist.

Jetzt möchte ich das ganze aber nicht nur mit genau dem Wert der in der Textbox steht, haben, sondern mit ähnlichen Werten, oder nur Teilen davon.. also dass es quasi wie ein Suchfeld reagiert. Wie stelle ich das für folgenden Code an?

PHP-Code:

With Me.ListBox2
.Clear
End With



Set ws 
Worksheets("MASCHINENLISTE")
ilastrow ws.Range("A65536").End(xlUp).Row

For irow 2 To ilastrow
    
If Trim(ws.Range("D" irow).Value) = UserForm1.TextBox10.Value And Trim(ws.Range("A" irow).Value) = "EGT" Then
    
        With UserForm1
.ListBox2
            
.AddItem
                
.List(UserForm1.ListBox2.ListCount 10) = Trim(ws.Range("G" irow).Value' Lieferung
                .List(UserForm1.ListBox2.ListCount - 1, 1) = Trim(ws.Range("E" & irow).Value) ' 
Typ
                
.List(UserForm1.ListBox2.ListCount 12) = Trim(ws.Range("B" irow).Value' Serial
                .List(UserForm1.ListBox2.ListCount - 1, 3) = Trim(ws.Range("I" & irow).Value) ' 
Spiel
                
.List(UserForm1.ListBox2.ListCount 14) = Trim(ws.Range("M" irow).Value' Topper
                .List(UserForm1.ListBox2.ListCount - 1, 5) = Trim(ws.Range("O" & irow).Value) ' 
Buttons
                
.List(UserForm1.ListBox2.ListCount 16) = Trim(ws.Range("S" irow).Value' Bill
                .List(UserForm1.ListBox2.ListCount - 1, 7) = Trim(ws.Range("U" & irow).Value) ' 
Print
                
        
End With
    End 
If
Next irow 
Starfish ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.03.2019, 16:09   #2
EarlFred
MOF Guru
MOF Guru
Standard

Schau dir mal den Like-Operator an, alternativ die Instr()-Methode.

Wobei beides „nur“ Wildcardsuchen ermöglicht und keine „unscharfen“ Suchen wie Möller=Müller

__________________

Datum und Uhrzeit, Makrorekorder-Code entschlacken, {Matrixformeln}
Tutorials zu Pivottabellen: Kurzeinstieg; Dynamischer Datenbereich; Daten und Zeiten gruppieren
Für 7 meiner Beiträge haben sich die Hilfesuchenden mit einer Spende an Wikipedia, die Tafeln oder Hilfe für krebskranke Kinder eV bedankt (das entspricht 0,049% per 19.12.2018) - eine tolle Geste!
EarlFred ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.03.2019, 17:04   #3
Starfish
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo und danke für den Anreiz.
Die Like Funktion reicht leider nicht.

Und mit der InStr()-Methode kann ich, soweit ich das verstehe, nur Wörter, bzw. Zeichenfolgen suchen die von Anfang an gleich sind.

PHP-Code:

With Me.ListBox2
.Clear
End With

Set ws 
Worksheets("MASCHINENLISTE")
ilastrow ws.Range("A65536").End(xlUp).Row

For irow 2 To ilastrow
    
'If Trim(ws.Range("D" & irow).Value) Like UserForm1.TextBox10.Value And Trim(ws.Range("A" & irow).Value) = "EGT" Then
Dim SearchString, SearchChar, vergleich
SearchChar = (ws.Range("D" & irow).Value)   ' 
String to search in...
SearchString UserForm1.TextBox10.Value    ' Search for ...
vergleich = InStr(1, SearchString, SearchChar, vbTextCompare)
If vergleich > 0 And Trim(ws.Range("A" & irow).Value) = "EGT" Then
    
        With UserForm1.ListBox2
            .AddItem
                .List(UserForm1.ListBox2.ListCount - 1, 0) = Trim(ws.Range("G" & irow).Value) ' 
Lieferung
                
.List(UserForm1.ListBox2.ListCount 11) = Trim(ws.Range("E" irow).Value' Typ
                .List(UserForm1.ListBox2.ListCount - 1, 2) = Trim(ws.Range("B" & irow).Value) ' 
Serial
                
.List(UserForm1.ListBox2.ListCount 13) = Trim(ws.Range("I" irow).Value' Spiel
                .List(UserForm1.ListBox2.ListCount - 1, 4) = Trim(ws.Range("M" & irow).Value) ' 
Topper
                
.List(UserForm1.ListBox2.ListCount 15) = Trim(ws.Range("O" irow).Value' Buttons
                .List(UserForm1.ListBox2.ListCount - 1, 6) = Trim(ws.Range("S" & irow).Value) ' 
Bill
                
.List(UserForm1.ListBox2.ListCount 17) = Trim(ws.Range("U" irow).Value)  Print
                .
ColumnWidths "2cm;3cm;1,5cm;3cm;1cm;1cm;2cm;2cm"
                
        
End With
    End 
If
Next irow 
Sagen wir mal in Textbox 10 steht der Name des Kunden, der meist mit dem Städtenamen identisch ist. Beispiel: "Wiesbaden Kunde"

In der Liste die Abgefragt wird stehen aber nun auch ähnliche Bezeichnungen. Beispiel: "Kunde in Wiesbaden"

Hab ich mit InStr() bisher nicht hinbekommen..
Starfish ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.03.2019, 21:42   #4
EarlFred
MOF Guru
MOF Guru
Standard

Zitat:

Und mit der InStr()-Methode kann ich, soweit ich das verstehe, nur Wörter, bzw. Zeichenfolgen suchen die von Anfang an gleich sind.

Nein, die Zeichenfolgen können beliebig stehen. Instr() gibt die Position an, an der die gesuchte Zeichenfolge in der anderen Zeichenfolge steht.

Ich kenne keine "einfache" Methode, um festzustellen, dass "Wiesbaden Kunde" gleichbedeutend mit "Kunde in Wiesbaden" ist. Da ist erheblich mehr Programmieridee vonnöten, vor allem, wenn die Variationsmöglichkeiten unbekannt sind (dieser eine genannte Fall wäre noch leicht abbildbar, aber wenn das universell sein soll, bräuchte man schon bedeutend mehr Input als dieses eine Beispiel, um überhaupt zu bewerten, ob eine exakte Umsetzung möglich ist)

__________________

Datum und Uhrzeit, Makrorekorder-Code entschlacken, {Matrixformeln}
Tutorials zu Pivottabellen: Kurzeinstieg; Dynamischer Datenbereich; Daten und Zeiten gruppieren
Für 7 meiner Beiträge haben sich die Hilfesuchenden mit einer Spende an Wikipedia, die Tafeln oder Hilfe für krebskranke Kinder eV bedankt (das entspricht 0,049% per 19.12.2018) - eine tolle Geste!

Geändert von EarlFred (14.03.2019 um 21:44 Uhr).
EarlFred ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:34 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.