Registriert seit: 18.02.2016
Version(en): 2007
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?
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
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:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28
• Nutella
Registriert seit: 18.02.2016
Version(en): 2007
Hallo Uwe,
hätte nicht gedacht, dass dies jemand hinbekommt. Umso mehr: Vielen Dank für deinen Expertenrat.
Registriert seit: 18.02.2016
Version(en): 2007
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.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo,
was gefällt Dir an André`s Vorschlag nicht?
http://www.clever-excel-forum.de/Thread-...6#pid34706Ersetze das letzte
.Count einfach durch
.Address .
Gruß Uwe
Registriert seit: 18.02.2016
Version(en): 2007
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!!
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo,
ActiveSheet.AutoFilter.Range und
Range("_FilterDatabase") verweisen auf denselben Bereich und sind somit austauschbar.
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
Registriert seit: 18.02.2016
Version(en): 2007
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.