ComboBox Filtern

Moderator: ModerationP

ComboBox Filtern

Beitragvon Anna12345 » 23. Mai 2020, 13:00

Hallo, meine Combobox ruft mit dem Code ca. 100 Spalten auf. Nun will ich dass nach:
"Workbook1" ---> "Worksheets("Tabelle3")" ---> "Zelle "F2""
gefiltert wird.

Die Combobox soll nun nur noch die Inhalte anzeigen die den text aus der Zelle "F2" beinhalten.

MfG Anna

Dim lngZeileMax As Integer
Set Adressen = Workbooks("Aktuell.xlsm").Worksheets("Adressen")
lngZeileMax = Adressen.UsedRange.Rows.Count

With Me.ComboBoxFirmenAdresseKunden

.RowSource = "Adressen!A7:A" & lngZeileMax 'Quelle Angeben
.Style = fmStyleDropDownList ' Auswahl erzwingen
.ListIndex = 0 ' Ersten Eintrag einstellen
.ListRows = 20 '20 Zeilen anzeigen
' .Font.blod = True 'Schriftschnitt Fett
' .ForeColor = RGB(0, 0, 255) 'Schriftfarbe Blaue
End With
Anna12345
 

Re: ComboBox Filtern

Beitragvon snb » 23. Mai 2020, 13:29

Zuletzt geändert von snb am 23. Mai 2020, 17:32, insgesamt 1-mal geändert.
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7627
Registriert: 25. Sep 2014, 16:37

Re: ComboBox Filtern

Beitragvon Anna12345 » 23. Mai 2020, 15:06

Die Seite habe ich durch google auch gefunden.
Ich weiß leider nicht genau wie ich den Code abändern muss.
Wo füge ich dort meine Zelle ein nach der durchsucht wird?
Anna12345
 

Re: ComboBox Filtern

Beitragvon 1Matthias » 23. Mai 2020, 19:21

Moin!
Ich habe mal den Code von snb versuchgt auf deinen Fall zu übertragen. Sieht dann so aus.
Code: Alles auswählen
Private Sub UserForm_Initialize()
Dim lngZeileMax As Integer
Set adressen = Workbooks("Aktuell.xlsm").Worksheets("Adressen")
Dim suche As Variant


suche = Workbooks("Workbook1").Worksheets("Tabelle3").Range("F2")

lngZeileMax = adressen.Cells(adressen.Rows.Count, 1).End(xlUp).Row 'Adressen.UsedRange.Rows.Count

adressen.Range("$A$6:$A$" & lngZeileMax).AutoFilter Field:=1, Criteria1:="=*" & suche & "*"

  With adressen.Cells(6, 1).CurrentRegion
    .Offset(1).Copy Cells(1, 20)
    .AutoFilter
  End With



With Me.ComboBoxFirmenAdresseKunden

.RowSource = ""
.Clear
If adressen.Cells(1, 20) <> "" Then
    'Prüfung ob Filter was ergeben hat
    If adressen.Cells(2, 20) <> "" Then
        'mehr als ein Wert, dann Liste
        .List = adressen.Cells(1, 20).CurrentRegion.Value
    Else
        'nur einen Wert, den hinzufügen
        .AddItem = adressen.Cells(1, 20).Value
    End If
End If
   
adressen.Cells(1, 20).CurrentRegion.ClearContents
.Style = fmStyleDropDownList ' Auswahl erzwingen
.ListIndex = 0 ' Ersten Eintrag einstellen
.ListRows = 20 '20 Zeilen anzeigen
' .Font.blod = True 'Schriftschnitt Fett
' .ForeColor = RGB(0, 0, 255) 'Schriftfarbe Blaue
End With
End Sub

Ist jetzt aber ungetestet. Zudem fehlen Angaben, ob die Datei, aus der der Suchwert kommt, geöffnet ist oder nicht. Da müsste man sonst noch was anpassen. Dein maxZeile habe ich mal angepasst. Da ich den Dateiaufbau nicht kenne, könnte sonst falsche Ergebnisse kommen. Beim Eintrag in die Combobox wird unterschieden, ob kein Wert, ein Wert oder mehrere vorkommen. Je nachdem wird entsprechend eingetragen. Ich habe den Code von snb größtenteils beibehalten. Habe lediglich den Kopiervorgang von Spalte 100 auf Spalte 20 vorverlegt. DAmit siehst du besser was passiert, wenn du es im Einzelschritt durchgehst. Die Spalte 20 sollte deshalb auch nicht belegt sein. Dahin wird dein Filterergebnis zwischenkopiert.
VG
1Matthias
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 667
Registriert: 15. Aug 2017, 18:36


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste