Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Vba - AutoFilter

Frage Entwicklung VB for Applications

Mitglied: goodbytes

goodbytes (Level 2) - Jetzt verbinden

10.11.2011 um 23:46 Uhr, 4036 Aufrufe, 2 Kommentare

Hallo,
ich habe eine Excel-Datei mit ein paar Makros für einen User erstellt, um ihm viel Zeit zu ersparen bei einigen Auswertungen.

Das Sheet ist mit Filter-Optionen in einer Zeile versehen. Nun sollen automatisiert Auswertungen mit mehreren durch Makros gesetzten Filtern gefahren werden, in deren Folge eine neue Arbeitsmappe erzeugt wird mit nach bestimmten Namens-Vorgaben erzeugten Sheets darin. Es werden praktisch per Makro die Filter gesetzt, das Ergebnis in einer Tabelle innerhalb der Quellmappe erzeugt und diese dann in das in der neu erstellten Zielmappe in das jeweils nach Filter erzeugtem neuen Sheet reinkopiert.

Das funktioniert auch schon bestens. Ich verzweifel aber an einem kleinen Problem.

Unterhalb der AutoFilter-Zeile möchte ich nach der per Makro gesetzten Filterkombination den Index der ersten zutreffenden Zeile ermitteln, um sie dann als Variable weiterzuverwenden.

Ich habe schon alles Mögliche versucht, leider ohne Erfolg. Mir ist schon klar, dass es die "visible"-Eigenschaft gibt, ich hatte mir auch schon mal irgendwann eine Funktion gebastelt, damit für Berechnungen nur die "visible"-Zeilen berücksichtigt werden. Allerdings weiss ich momentan nicht mehr wie es war...

Vielleicht kann mir da ja mal Jemand einen kleinen Tipp geben?

Wie gesagt, es geht mir wirklich nur um die Ermittlung der ersten Zeile der Filterung (die Filter greifen erst ab Zeile 17, also die Einstellung erfolgt mittels der Zeile 16).

Gruß
Torsten
Mitglied: 76109
11.11.2011 um 14:36 Uhr
Hallo TorstenB!

Wenn ich Dich richtig verstanden habe, dann in etwa so:
01.
'Beispiel mit Tabelle1 und AutoFilter in Spalte F Zeile 16 
02.
 
03.
Sub RowIndex() 
04.
    Dim EndLine As Long, Index As Long 
05.
     
06.
    With Sheets("Tabelle1") 
07.
        EndLine = .Cells(.Rows.Count, "F").End(xlUp).Row 
08.
        Index = .Range("F17:F" & EndLine).SpecialCells(xlCellTypeVisible).Row 
09.
    End With 
10.
End Sub
Gruß Dieter
Bitte warten ..
Mitglied: goodbytes
23.11.2011 um 08:20 Uhr
Hallo Dieter,
entschuldige, dass ich mich so spät melde. Ich hatte einfach zu viel um die Ohren...

Inzwischen hatte ich auch meine damals gebastelte Lösung wiedergefunden und entsprechend angepasst:

01.
Function Erste_sichtbare_Zeile() 
02.
 
03.
For i = 17 To Workbooks(Quelldatei).Sheets(1).Cells(Cells.Rows.Count, 1).End(xlUp).Row 
04.
         
05.
    If Workbooks(Quelldatei).Sheets(1).Cells(i, 1).EntireRow.Hidden = False Then 
06.
        Erste_sichtbare_Zeile = i 
07.
        Exit For 
08.
    End If 
09.
Next 
10.
 
11.
End Function
(Quelldatei ist hier eine Public-Variable.)

Aber vielen Dank für deine Lösung; ich habe sie mir in meine kleines Archiv mit aufgenommen, da muß ich beim nächsten Mal nicht mehr so suchen.

Eine schöne Woche wünsche ich dir noch !!!

Gruß Torsten
Bitte warten ..
Ähnliche Inhalte
Basic
gelöst IE im Private Mode per VBA öffnen und URL Übergeben (3)

Frage von thomas1972 zum Thema Basic ...

VB for Applications
Vba Outlook Betreff Datum - Absender - Empfänger (7)

Frage von Romy0907 zum Thema VB for Applications ...

Microsoft Office
gelöst VBA - aktuelle Kalenderwoche ermitteln (3)

Frage von Ghost108 zum Thema Microsoft Office ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Windows Systemdateien
gelöst NTFS und die Defragmentierung (29)

Frage von WinLiCLI zum Thema Windows Systemdateien ...

Server-Hardware
Treiber für Server gesucht (15)

Frage von MeisterFuchs zum Thema Server-Hardware ...