Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro von aktiver Zelle

Forumthread: Makro von aktiver Zelle

Makro von aktiver Zelle
20.02.2018 19:49:27
aktiver
Hallo,
ich habe ein Makro, dass einen Spezialfilter ausführt:
Sub spezialfilter()
Sheets("tabelle_09").Range("A1:C1002").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("D93:D94"), CopyToRange:=Range("D96"), Unique:=True
End Sub

Nun will ich, dass nicht nur in Spalte "D" die Daten eingefügt werden, sondern in einen Bereich, jeweils ausgehend von der aktiven Zelle.
Das nächste mal sollen die Daten in Spalte "G" eingefügt werden.
Der Listenbereich "tabelle09 A1:C1002), soll flexibel gestaltet werden, da je nach Datenherkunft sich der Bereich ändert.
Der Kriterienbereich verschiebt sich auf Spalte "G". Der Zielbereich ebenfalls.
LG
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro von aktiver Zelle
23.02.2018 07:23:00
aktiver
Hallo Hans,
hier ein Makro, dass die Bereiche von Daten, Kriterien und Ziel dynamisch anpasst.
Die Zeile für die Filterkriterien ist mit 93 fest vorgegeben.
Du kannst diese aber auch noch dynamisieren, indem du sie relativ zur letzten Datenzeile festlegst.
Gruß
Franz
Sub spezialfilter()
Dim wks As Worksheet
Dim Zeile_L As Long, Spa As Long
Dim Zeile_Filter As Long
Set wks = Sheets("tabelle_09")
Spa = ActiveCell.Column
With wks
'letzte Zeile der Daten in Spalte A
Zeile_L = .Cells(1, 1).End(xlDown).Row
Zeile_Filter = 93 'Zeile fix
'       Zeile_Filter = Zeile_L - 3 'Zeile relativ zur letzten Datenzeile
'prüfen, ob Spalten-Titel in aktueller Spalte eingetragen ist
If .Cells(Zeile_Filter, Spa).Value = "" Or Spa  "" Then
'Daten im vorhandenen Zielbereichs löschen
Zeile_L = .Cells(.Rows.Count, Spa).End(xlUp).Row
.Range(.Cells(Zeile_Filter + 3, Spa), .Cells(Zeile_L, Spa + 2)).ClearContents
End If
'letzte Zeile der Daten in Spalte A
Zeile_L = .Cells(1, 1).End(xlDown).Row
'Spezialfilter setzen
.Range(.Cells(1, 1), .Cells(Zeile_L, 3)).AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=.Range(.Cells(Zeile_Filter, Spa), _
.Cells(Zeile_Filter + 1, Spa)), _
CopyToRange:=.Cells(Zeile_Filter + 3, Spa), Unique:=True
End If
End With
End Sub

Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige