Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Per VBA die Zelladressen drucken, die der Autofilter anzeigtu
#1
Hallo alle zusammen,

ich habe in der Spalte A den Autofilter eingesetzt, der mir nun aus einer langen Liste die gewünschten Zellen anzeigt.

Jetzt möchte ich, dass per VBA mit debug.print mir alle Zelladressen dieser Auswahl gedruckt werden. Wie geht das?
Antworten Top
#2
Hallo,

Code:
Sub aaa()
  Debug.Print Range("_FilterDatabase").SpecialCells(xlCellTypeVisible).Address
End Sub

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Nutella
Antworten Top
#3
Hallo Uwe,

hätte nicht gedacht, dass dies jemand hinbekommt. Umso mehr: Vielen Dank für deinen Expertenrat.
Antworten Top
#4
Hallo,

diesen Befehl hatte mir vor einigen Tagen freundlicherweise Uwe in diesem Thread als Antwort auf meine Frage zugesandt. Ein Superteil.

Code:
debug.print Range("_FilterDatabase").SpecialCells(xlCellTypeVisible).Address


Hier werden aber nun alle Fundstellen als Zeichenkette angezeigt. Also auch der sogenannte Header, die Zelle A1. Könnte mir mal jemand verraten
wie ich auf Grundlage dieser Anweisung ein Ergebnis ohne dieses "A1" hinbekomme. Eine solche Syntax zu konstruieren ist für mich leider immer noch Schwerstarbeit und ich müßte alle Kombinationen ausprobieren, was ja nun unendlich viel Zeit in Anspruch nehmen würde.
 
Für eure Arbeit schon mal im voraus herzlichen Dank.
Antworten Top
#5
Hallo,

was gefällt Dir an André`s Vorschlag nicht? http://www.clever-excel-forum.de/Thread-...6#pid34706
Ersetze das letzte .Count einfach durch .Address .

Gruß Uwe
Antworten Top
#6
Hallo Uwe,

o.k. kann man so machen, hatte aber mehr dein "_FilterDatabase" im Kopf, denn zum Vergleich:
Code:
'Andre:
z = ActiveSheet.AutoFilter.Range.Offset(1, 0).Resize(ActiveSheet.AutoFilter.Range.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Address
'Dein Vorschlag allerdings noch mit dem für mich störenden Header:
x = Range("_FilterDatabase").SpecialCells(xlCellTypeVisible).Address
'Wenns mit _FilterDatabase nicht geht, mache ich es lieber so, ist kürzer und leichter zu merken:
y = Mid(Range("_FilterDatabase").SpecialCells(xlCellTypeVisible).Address, 6)
'aber: Alternativen sind natürlich immer wichtig!!
Antworten Top
#7
Hallo,

ActiveSheet.AutoFilter.Range und Range("_FilterDatabase") verweisen auf denselben Bereich und sind somit austauschbar. Wink

Code:
Sub OhneHeader()
  With ActiveSheet.Range("_FilterDatabase")
   Debug.Print .Offset(1, 0).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Address
  End With
End Sub

Gruß Uwe
Antworten Top
#8
Hallo Uwe,

danke nochmal für den "extra" Code. Der Code von Andre ist für mich zunächst sogar mal leichter verständich gewesen als deiner. Denn, diesen hatte ich heute
morgen Stück für Stück zerlegt. Trotzdem ohne deinen Wink mit Zaunpfahl wäre ich wohl nicht so ohne weiteres darauf gekommen. Grobes Verständis und
Beherrschen sind zweierlei.

Ihr macht hier einen tollen Job. Danke euch allen.

Bis die Tage.
Antworten Top


Gehe zu:


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