Seite 1 von 1
Anzahl von Zellen/Zeilen anzeigen bei filtern durch Makro
Verfasst: Mi, 25.11.2015 11:49
von Akil
Hallo zusammen!
Ich habe hier ein xls, das noch mit MS Office XP erstellt wurde.
Es enthält Makros zum Filtern von Zeilen nach deren Inhalt.
Jetzt würde ich gerne auf Open Office Calc umsteigen, und die Makros funktionieren dort auch.
ABER:
Wenn ich das Makro in MS Office verwendet habe, stand links unten in der Statusleiste immer die ANzahl der gefundenen Einträge aufgrund des Filters. Ich habe das mit MS Office 2010 getestet und dort ist das auch so.
In Open Office Calc gibt es zwar in der Statusleiste, rechts der Mitte eine Anzeige mit "Anzahl=", diese scheint in dem Fall aber funktionslos, egal was man dort einstellt (z.B. Anzahl2, Summe, etc.)
Die Zeilennummerierung hilft mir hier auch nicht, weil da ja die ausgeblendeten Zeilen mitgezählt werden.
Da ich mich mit Makros nicht auskenne und im Menüpunkt Makros die eingebauten Makros nicht mal finden kann, hoffe ich, dass das ohne eine Änderung der vorhandenen Makros zu schaffen ist.
Hat wer von euch da einen Tipp für mich?
[EDIT]
Falls die Antwort hierauf leichter fällt: Gibt es eine einfache Möglichkeit die sichtbaren Zeilen zu zählen (ausser manuell natürlich .. sind ein paar hundert!), wenn zwischendurch immer ein paar ausgeblendet sind? Hat zwar nix mehr mit Makros zu tun, aber die Frage kam mir jetzt erst, sorry

Re: Anzahl von Zellen/Zeilen anzeigen bei filtern durch Makro
Verfasst: Do, 26.11.2015 14:30
von TrueColor
Akil hat geschrieben:Gibt es eine einfache Möglichkeit die sichtbaren Zeilen zu zählen, wenn zwischendurch immer ein paar ausgeblendet sind? Hat zwar nix mehr mit Makros zu tun
Hat sie doch. Mal auf die Schnelle zusammengeschrieben:
Code: Alles auswählen
Function GetLastUsedRow(oSheet as Object) As Integer
' Beschreibung: bestimmt die Nummer der letzten benutzten Zeile
Dim oCell as Object
Dim oCursor as Object
oCell = oSheet.getCellByPosition(0,0)
oCursor = oSheet.createCursorByRange(oCell)
oCursor.gotoEndOfUsedArea(True)
GetLastUsedRow = oCursor.RangeAddress.EndRow
End Function
Sub Filterergebnis_Zeilen_zaehlen
' Beschreibung: bestimmt die Anzahl der nicht ausgeblendeten Zeilen im Zählbereich
' benötigte Macros: GetLastUsedRow()
Dim i as Integer 'Laufvariable Zeilen
Dim oSheet as Object
Dim oZeilen as Object
Dim zaehlen as Integer 'Anzahl der sichtbaren Zeilen
Dim Zaehlbereich_Start as Integer
Dim Zaehlbereich_Ende as Integer
oSheet = ThisComponent.CurrentController.ActiveSheet
'--- Festlegen des Zählbereiches
Zaehlbereich_Start = 1 'Zeilennummer Starts
Zaehlbereich_Ende = GetLastUsedRow(oSheet)+1 'Zeilennummer Ende
'--- Zählschleife
zaehlen = 0
For i = Zaehlbereich_Start to Zaehlbereich_Ende
oZeilen = oSheet.getCellRangeByName("A"&i).rows
if oZeilen.isvisible = true then
zaehlen = zaehlen + 1
Endif
Next i
'--- Ausgabe
MsgBox("Anzahl der sichtbaren Zeilen: " & zaehlen)
End Sub
Edit: Anhang hinzugefügt
Re: Anzahl von Zellen/Zeilen anzeigen bei filtern durch Makro
Verfasst: Sa, 28.11.2015 18:23
von Akil
Danke für die rasche Antwort!
Leider bin ich aber wohl zu blöd/zu unwissend um sie zu verstehen.
Aus dem Beispielfile werde ich auch nicht schlau. Der Button tut anscheinend nichts und angezeigt wird drauf auch nichts und rechts unten wird immer nur die Summe aller Werte angezeigt, nicht die Zahl der sichtbaren Zeilen.
Wenn ich über Extras > Makros bearbeiten in das Zeilen zählen Makro gehe und einen Doppelklick drauf mache, gibt er mir tatsächlich die richtige Zahl aus. Aber das kann doch nicht der normale Weg sein? Wäre etwas zu umständlich.
Ich hab mein File jetzt mal von allen Daten befreit und hier hochgeladen.
Wenn man in der Spalte L im dropdown menü auf "A" klickt, werden alle Zeilen mit A drin angezeigt. Der Rest wird ausgeblendet.
Jetzt möchte ich irgendwo sehen, wieviele Zeilen das sind, die da übrigbleiben.
Das gleiche soll auch in Spalte G funktionieren.
Wenn ich da zB auf "RUM" klicke, sollen alle Zeilen mit RUM drin angezeigt und gezählt werden. In Excel funktioniert das genau so .. on OO auch, nur steht halt nirgendo die Zahl der Zeilen.
Muß ich dafür die Makros alle umschreiben und wenn dann wie bzw. wo finde ich sie überhaupt?
Sorry, ich bin ein verblutender Anfänger, was Makros angeht ;(
Re: Anzahl von Zellen/Zeilen anzeigen bei filtern durch Makro
Verfasst: Sa, 28.11.2015 20:20
von F3K Total
Hi,
man kann auch mit der Funktion TEILERGEBNIS() arbeiten, siehe Anlage.
Gruß R
Re: Anzahl von Zellen/Zeilen anzeigen bei filtern durch Makro
Verfasst: So, 29.11.2015 10:11
von Akil
SPITZE!
Danke F3K Total!!
Ich hab jetzt als Oberstes noch eine Zeile eingefügt, wo die Formel in jeder relevaten Spalte drinsteht .. vorsichtshalber bis Zeile 2000, falls noch Einträge dazukommen

In der Spalte mit den "A"s muss man jetzt deswegen nicht mal mehr das Makro benutzen um die richtige Zahl angezeigt zu bekommen.
Du bist der Beste!! ;D
[EDIT]
Uhm, wo kann ich dir hier denn ein Bussi aufs Bauchi geben .. ein thumbs up, Sternchen, Häkchen oder sonstwas als Zeichen der Anerkennung? Kann nichts dafür finden.
Re: Anzahl von Zellen/Zeilen anzeigen bei filtern durch Makro
Verfasst: So, 29.11.2015 10:25
von F3K Total
Moin Akil
Akil hat geschrieben:...Bussi aufs Bauchi...
Na, den Spruch kannte ich auch noch nicht

Ist nicht nötig!
Nur noch ein Tipp, wenn du dir die Funktion
Teilergebnis() in der Hilfe (F1) ansiehst, wirst Du sehen, dass man damit noch viel mehr, als nur zählen, kann.
Hilfe hat geschrieben:TEILERGEBNIS(Funktion; Bereich)
Funktion ist eine Zahl, die für eine der folgenden Funktionen steht:
1 MITTELWERT
2 ANZAHL
3 ANZAHL2
4 MAX
5 MIN
6 PRODUKT
7 STABW
8 STABWN
9 SUMME
10 VARIANZ
11 VARIANZEN
Bereich ist der Bereich, dessen Zellen berücksichtigt werden.
Gruß R
Re: Anzahl von Zellen/Zeilen anzeigen bei filtern durch Makro
Verfasst: So, 29.11.2015 23:29
von Akil
Hmm, sehr interessant das ist. Sscheint über die Maßen nützlich zu sein.
Ich hatte mich schon gefragt was der 3er bedeutet.
Also ist ANZAHL in dem Fall alle Zeilen und ANZAHL2 die Zahl der sichtbaren Zeilen.
Was sind denn dann bitte STABW, STABWN, VARIANZ und VARIANZEN .. dachte Varianz wäre ein Zufallswert und die ersten 2 die Standardabweichung .. aber was ist dann das N?
Re: Anzahl von Zellen/Zeilen anzeigen bei filtern durch Makro
Verfasst: Mo, 30.11.2015 08:41
von TrueColor
Akil hat geschrieben:Aus dem Beispielfile werde ich auch nicht schlau.
Die erste Funktion bestimmt nur die letzte benutzte Zelle, dient dazu, irgendwelche übergroßen Bereiche mit Sicherheitszuschlag wie A1:XY20000 zu vermeiden.
Die Zählschleife prüft, ob die jeweilige Zeile der Zellen A1, A2, A3...Ai (i ist die Laufvariable) den Status "sichtbar" haben und erhöht in diesem Fall die Variable "zaehlen". Am Ende wird der Inhalt dieser Variable wird zusammen mit einem Text ausgegeben.
Der Button tut anscheinend nichts und angezeigt wird drauf auch nichts
Ist das bei den anderen auch so? Bei mir wird die MessageBox angezeigt!
und rechts unten wird immer nur die Summe aller Werte angezeigt, nicht die Zahl der sichtbaren Zeilen.
An der Statuszeile hab ich nicht rummanipuliert, da wird alles standardmäßig angezeigt
Wenn ich über Extras > Makros bearbeiten in das Zeilen zählen Makro gehe und einen Doppelklick drauf mache, gibt er mir tatsächlich die richtige Zahl aus. Aber das kann doch nicht der normale Weg sein? Wäre etwas zu umständlich.
Deshalb der Button

Re: Anzahl von Zellen/Zeilen anzeigen bei filtern durch Makro
Verfasst: Mo, 30.11.2015 08:45
von TrueColor
F3K Total hat geschrieben:Hi,
man kann auch mit der Funktion TEILERGEBNIS() arbeiten, siehe Anlage.
Gruß R
Kannte ich auch noch nicht, sieht sehr nützlich aus, muss ich mir merken!