HERBERS Excel-Forum - das Archiv
Werte einer gefilterten Spalte zu Label.Caption kopieren
Jaks
Hallo!

Ich habe folgendes Problem:

Ich filtere (und sortiere) meine Tabelle "Estimates" nach bestimmten Kriterien und möchte nun den ersten Wert einer Spalte (nach dem Filtern und Sortieren) in ein Label kopieren (Zusätzlich im Optimalfall auch den zweiten, dritten und vierten Wert in weitere Labels).



Public Selection As String
Public SNAPSelection As String
Public WEEKSelection As String

Private Sub ComboBox3_Change()

With Worksheets("Sheet4").ListObjects("Estimates")
.Range.AutoFilter Field:=6, Criteria1:=Selection
.Range.AutoFilter Field:=7, Criteria1:=SNAPSelection
.Range.AutoFilter Field:=8, Criteria1:=WEEKSelection
.Range.Sort Worksheets("Sheet4").ListObjects("Estimates").ListColumns(5).Range, xlDescending
v = .ListColumns(5).DataBodyRange
End With

'Label13.Caption = erster Wert von v
'Label14.Caption = erster Wert von v

End Sub



Vielen Dank für eure Hilfe!
AW: Werte einer gefilterten Spalte zu Label.Caption kopieren
Oberschlumpf
Hi,

ich vermute, v wird durch Zuweisung von .ListCol...DataRange zu einer Array-Variablen.
(ich vermute nur, weil ich deinen Code ja nicht testen kann)

Vielleicht hilft das hier:


Label13.Caption = v(0)
Label14.Caption = v(1)
Label15.Caption = v(2)
usw


Hilfts?
Nein? Dann zeig bitte per Upload eine Bsp-Datei mit genügend Bsp-Daten und deinem Code, der auch in der Bsp-Datei funktioniert.

Ciao
Thorsten
AW: Werte einer gefilterten Spalte zu Label.Caption kopieren
Jaks
Hallo Torsten,

vielen Dank für die schnelle Hilfe.

Der erste Ansatz hat leider nicht funktioniert, ich habe daher eine Beispieldatei erstellt:

https://www.herber.de/bbs/user/170852.xlsm



Ich hoffe ich habe nichts relevantes vergessen!
Gruß
AW: Werte einer gefilterten Spalte zu Label.Caption kopieren
daniel
Hi
im prinzip so.
das .SpecialCells schränkt die Auswahl auf die sichtbaren, dh gefilterten Zellen ein.
die einzelnen Werte (erster, zweiter usw) muss man dann auf diese Weise ermitteln, da es sich hier um einen Bereich aus nichtzusammenhängenden Zellen handelt, denn bei diesen funktioniert ein Index nicht.

dim Zelle as range

dim i as long.
...
hier dein Code zum sortieren und Filtern
...
For Each Zelle .ListColumns(5).DataBodyRange.SpecialCells(xlcelltypevisible)
i = i + 1
Select Case i
Case1: Label13.Caption = Zelle.value 'erster Wert
Case2: Label14.Caption = Zelle.Value 'zweiter Wert
Case Else
end Select
next


Gruß Daniel

AW: Werte einer gefilterten Spalte zu Label.Caption kopieren
Jaks
Hallo Daniel,

vielen Dank für deine Antwort! Stimmt, bisher wurden immer nur die ersten Werte aus dem ungefilterten Bereich ausgelesen.


Dein Code funktioniert, wenn ich noch ein "In" in folgender Zeile einfüge

 For Each Zelle In 


und hier jeweils ein Leerzeichen hinter Case:

Case 1:        Label13.Caption = Zelle.Value 'erster Wert

Case 2:        Label14.Caption = Zelle.Value 'zweiter Wert


Vielen, vielen Dank :)
AW: Werte einer gefilterten Spalte zu Label.Caption kopieren
Oberschlumpf
Hi,

nun denn, es war nur n Versuch.

Versuch es hiermit:
https://www.herber.de/bbs/user/170853.xlsm

v wird zum Array, da lag ich richtig.
Aber nicht zu einem 1-dimensionalen Array, sondern v ist 2-dimensional.

aus v = .ListColumns(5).DataBodyRange ergibt sich

v(x,1) und x beginnt mit 1

x = Anzahl aller Einträge in Datentabelle (ohne Überschriftenzeile)

daraus ergibt sich als Code für die Labels:
(ich hab jetzt angenommen, weil du nix anderes angegeben hast, dass die Inhalte des Arrays vom 1. bis letzten Eintrag an die Labels übergeben werden
und ich hab noch Label2 im Code hinzugefügt, weil ja auch im Userform(ular) ein Label2 vorhanden ist)



Label1.Caption = v(1, 1)
Label3.Caption = v(2, 1)
Label2.Caption = v(3, 1)


Wenn du selbst sehen willst, welche Inhalte in v wo stehen, dann...

...setz in der Zeile End With mit F9 einen Haltepunkt
...markiere v, klick mit rechte MT drauf und wähl "Überwachung hinzufügen" aus

Hilfts?
Das müsste es, denn in der Bsp-Datei funktionierts ja jetzt.

Ciao
Thorsten
AW: Werte einer gefilterten Spalte zu Label.Caption kopieren
Jaks
Hallo Torsten,

nochmal vielen Dank für die schnelle Antwort!

Jetzt klappt es wunderbar, klasse!!

Nochmals vielen Dank!

Gruß