ich habe ein Problem hinsichtlich dem Kopieren eines Werts aus einer gefilterten Tabelle. Die Ausgangsituation sieht wie folgt aus:
Ich habe einen Datensatz im Tabellenblatt "Datensatz", der den Bereich von Spalte A bis W beansprucht. In der 1. Zeile findet sich die Bezeichnung der Daten für die jeweilige Spalte. Nun habe ich Makro geschrieben, das mir eine Auswertung des Datensatzes vornimmt. In einem Schleifendurchlauf (es gibt mehrere Schleifen mit verschiedenen Kriterien) werden bestimmte Spalten gefiltert, woraus am Ende neben der 1. Zeile (der Überschriften) entweder eine 2.Zeile oder keine Zeile übrig bleibt. Aus der sichtbaren Zeile möchte ich den Wert einer Zelle einer bestimmten Spalte kopieren und in ein anderes Tabellenblatt in eine Auswertungstabelle eintragen. Ist keine zweite Zeile sichtbar soll er mir den Text "Keine Daten" kopieren und in die Auswertungstabelle kopieren. Und genau da liegt mein Problem.
Ich bekomme es nicht hin, den Wert der sichtbaren 2.Zeile aus Spalte 2 zu kopieren. Er kopiert mir immer den Wert der 2. Zeile aus dem gesamten Datensatz, also er nimmt die rausgefilterte nicht-sichtbare 2. Zeile.
Habe im Archiv und bei Google viel gesucht, auch ein Beispiel von einer anderen Seite versucht und viel selbst versucht, aber es klappt nicht. An den Fall, in dem keine Zeile vorhanden ist, habe ich mich noch gar nicht getraut:(
Kann mir da jemand helfen?
Hier mein Code ab dem letzten Filter nachdem ich auslesen möchte( falls benötigt, kann ich auch den kompletten Code hochladen)
'Filter "Hoch-/Rücklauf Nr." setzen
For z = 1 To 3
Kriterium = Sheets("Filterkriterien").Cells(z, 3)
wss.Range(rngs).AutoFilter Field:=5, Criteria1:=Kriterium, Operator:=xlAnd
'Druck-Werte kopieren und eintragen
If ActiveSheet.AutoFilterMode And ActiveSheet.FilterMode Then
' ActiveSheet.AutoFilter.Range ist der Bereich des Autofilters
' .SpecialCells(xlCellTypeVisible) die darin sichtbaren Zellen
Set rngSrc = ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible)
' Die Zeile 1 (von rngSrc) ist immer sichtbar, da stehen die Überschriften
' Danach gibt es 3 Fälle zu unterscheiden
If rngSrc.Areas(1).Rows.Count > 1 Then
' a) Zeile 2 ist sichtbar, diese wird dann automatisch areas(1) zugeschlagen!
' Damit ist rngSrc.Areas(1).Rows.Count > 1 und die gewünschten Zellen liegen dort in der _
Zeile 2
Set rngDst = rngSrc.Areas(1).Rows(2)
ElseIf rngSrc.Areas.Count > 1 Then
' b) Zeile 2 ist unsichtbar, mindestens eine andere Zeile ist sichtbar
' die gewünschte Zellen liegen jetzt eben in der 2. Area in Zeile 1
Set rngDst = rngSrc.Areas(2).Rows(1)
Else
' c) alles ausgeblendet, hier mache ich einfach nichts, d.h. rngDst Is Nothing
End If
End If
'Wert aus der der 2.Zeile der 2.Spalte kopieren
rngDst.Cells(2, 2).Copy
'Wert in anderen Blatt in Zielzelle schreiben
Sheets("Kriterien-Überprüfung").Select
Cells(Zeile, SpalteDruck).PasteSpecial Paste:=xlPasteValues
Danke schon mal für eure Mühe!