Listbox zeigt ganze Spalte an - Doppelte Werte sollen nicht angezeigt werden
#21
snb: Du hast völlig recht. Es sind in laufe der Jahre soviel "Neuerungen" hinzugekommen, das wäre sicherlich mal notwendig.
Top
#22
Hallo Community,

ich habe ein kleines Problem mit meiner Userform. Und zwar habe ich gemerkt, das ich einen weiteren Filter benötige um den Preis eines Bauteils zu greifen.
Ich habe also eine weitere ListBox Höhe hinzugefügt und in der Listbox zuvor einen weiteren Filter hinzugefügt:

.AutoFilter field:=4, Criteria1:="=" & SU_Div.durchgang.Value

Er filtert zwar in der Exceltabelle richtig, zeigt mir aber in der Listbox "Höhe" die Werte nicht an und bringt dann einen Fehler.

Mein Fehler liegt sicherlich in der:

Private Sub durchgang_click()

ich kenne auch die Bedeutung von .Cells(Rows.Count, 3) nicht so wirklich. das steht überall... vielleicht ist auch da der Fehler versteckt? :(

Wäre jemand so freundlich mal drüber zu gucken?

Vielen Dank im Voraus!  Blush

Viele Grüße Steve


.xlsm   Userform_Hilfe.xlsm (Größe: 27,82 KB / Downloads: 3)
Top
#23
Hallöchen,

nur mal zu Deiner Frage.
.Cells(Rows.Count, 3) ist in Spalte C die Zelle ganz unten
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • tyr0n
Top
#24
Hallo Schauan, vielen Dank für die Info. Ich habe diese nun angepasst, bekomme jedoch weiterhin einen Fehler wenn ich in der 3. Auswahl Box eine Auswahl tätige die nur einen Wert in die 4. überträgt. 
Sobald ich in der 3. Auswahl Box einen Artikel auswähle für die es mehr als 1 Höhe gibt, funktioniert es anscheinend.

Beispiel:

Estrich -> 4034 -> 1000 -> 150 - 150 -------> Fehler. In der 4. Box sollte 650 angezeigt werden

Estrich -> 4034 -> 1000 -> 600 - 600 -------> funktioniert. In der 4. Box werden 3 Ergebnisse angezeigt.

Könnte sich das jemand anschauen? Vielen Dank im Voraus.


.xlsm   Userform_Hilfe.xlsm (Größe: 32,03 KB / Downloads: 5)
Top
#25
Hallo,
Private Sub durchgang_click()
hoehe.Clear
With Worksheets("Preise_SU_Div").UsedRange
.AutoFilter field:=1, Criteria1:="=" & SU_Div.gruppe.Value
.AutoFilter field:=2, Criteria1:="=" & SU_Div.produktliste.Value
.AutoFilter field:=3, Criteria1:="=" & SU_Div.Produktliste2.Value
.AutoFilter field:=4, Criteria1:="=" & SU_Div.durchgang.Value
Set objDic = CreateObject("Scripting.Dictionary")
arrBereich = .Range("E2:E" & .Cells(Rows.Count, 5).End(xlUp).Row).SpecialCells(xlCellTypeVisible)
If IsArray(arrBereich) Then
For i = LBound(arrBereich) To UBound(arrBereich)
If Not objDic.exists(arrBereich(i, 1)) Then
objDic.Add arrBereich(i, 1), arrBereich(i, 1)
End If
Next i
Else
objDic.Add arrBereich, arrBereich
End If
hoehe.List = objDic.Keys
End With
Set objDic = Nothing
If Worksheets("Preise_SU_Div").AutoFilter.FilterMode Then Worksheets("Preise_SU_Div").ShowAllData
End Sub
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • tyr0n
Top
#26
kuwer war schneller  :)
[-] Folgende(r) 1 Nutzer sagt Danke an ralf_b für diesen Beitrag:
  • tyr0n
Top
#27
woooohooooooo besten Dank! Ein kleiner Fehler ist noch drin.
Bei der Auswahl:

Estrich - 1000 - 150 - 150 erscheint in der Box 4: Schachtsystem und Estrich, anstelle von dem Wert 650.

Der zeigt also A1 und A2 an.
Top
#28
(12.01.2021, 11:53)tyr0n schrieb: Ein kleiner Fehler ist noch drin.

Hallo, 19

ein sehr kleiner Fehler (noch ein s dazu) - schreibe es so: 21

Code:
arrBereich = .Range("E2:E" & .Cells(Rows.Count, 5).End(xlUp).Rows).SpecialCells(xlCellTypeVisible)
[-] Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:
  • tyr0n
Top
#29
Wenn man hoehe.List verwendet ist hoehe.clear überflüssig.

Code:
Private Sub durchgang_click()
  sn = Tabelle1.Cells(1).CurrentRegion.Resize(, 5)
  c00 = gruppe & produktliste & Produktliste2 & durchgang

  For j = 2 To UBound(sn)
    If sn(j, 1) & sn(j, 2) & sn(j, 3) & sn(j, 4) = c00 And InStr(c01, sn(j, 5)) = 0 Then c01 = c01 & " " & sn(j, 5)
  Next
 
  hoehe.List = Split(Trim(c01))
End Sub

Wenn man Interaktion mit dem Arbeitsblatt vermeidet (günstig für Geschwindigkeit), braucht man auch Screenupdating oder calculation nich zu fürchten.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • tyr0n
Top
#30
Hallo Case, hallo snb,

ihr seid mir beide wie immer eine große Hilfe. Es funktionieren beide Lösungen. Ich finde den Code vom snb immer wieder erstaunlich. Leider verstehe ich ihn überhaupt nicht  19 Sonst hätte ich ihn schon längst übernommen!
Top


Gehe zu:


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