Anzahl von Zellen/Zeilen anzeigen bei filtern durch Makro

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Akil
Beiträge: 4
Registriert: Mi, 25.11.2015 11:33

Anzahl von Zellen/Zeilen anzeigen bei filtern durch Makro

Beitrag 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 :)
TrueColor
******
Beiträge: 542
Registriert: Do, 11.03.2010 11:23

Re: Anzahl von Zellen/Zeilen anzeigen bei filtern durch Makro

Beitrag 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
Dateianhänge
sichtbare_Zeilen_zaehlen.ods
(179.94 KiB) 163-mal heruntergeladen
System:
Arbeit: Windows 7 (64 bit) + Apache OpenOffice 4.1.2 (AOO412m3), LibreOffice 4.1.4.2
Home: Windows 10 (64 bit) + Apache OpenOffice 4.1.2 (AOO412m3)
Akil
Beiträge: 4
Registriert: Mi, 25.11.2015 11:33

Re: Anzahl von Zellen/Zeilen anzeigen bei filtern durch Makro

Beitrag 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.
File_leer.xls
(103.5 KiB) 116-mal heruntergeladen
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 ;(
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Anzahl von Zellen/Zeilen anzeigen bei filtern durch Makro

Beitrag von F3K Total »

Hi,
man kann auch mit der Funktion TEILERGEBNIS() arbeiten, siehe Anlage.
Gruß R
Dateianhänge
Teilergebnis.ods
(8.36 KiB) 199-mal heruntergeladen
Akil
Beiträge: 4
Registriert: Mi, 25.11.2015 11:33

Re: Anzahl von Zellen/Zeilen anzeigen bei filtern durch Makro

Beitrag 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.
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Anzahl von Zellen/Zeilen anzeigen bei filtern durch Makro

Beitrag von F3K Total »

Moin Akil
Akil hat geschrieben:...Bussi aufs Bauchi...
Na, den Spruch kannte ich auch noch nicht :D 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
Akil
Beiträge: 4
Registriert: Mi, 25.11.2015 11:33

Re: Anzahl von Zellen/Zeilen anzeigen bei filtern durch Makro

Beitrag 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?
TrueColor
******
Beiträge: 542
Registriert: Do, 11.03.2010 11:23

Re: Anzahl von Zellen/Zeilen anzeigen bei filtern durch Makro

Beitrag 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 ;-)
System:
Arbeit: Windows 7 (64 bit) + Apache OpenOffice 4.1.2 (AOO412m3), LibreOffice 4.1.4.2
Home: Windows 10 (64 bit) + Apache OpenOffice 4.1.2 (AOO412m3)
TrueColor
******
Beiträge: 542
Registriert: Do, 11.03.2010 11:23

Re: Anzahl von Zellen/Zeilen anzeigen bei filtern durch Makro

Beitrag 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!
System:
Arbeit: Windows 7 (64 bit) + Apache OpenOffice 4.1.2 (AOO412m3), LibreOffice 4.1.4.2
Home: Windows 10 (64 bit) + Apache OpenOffice 4.1.2 (AOO412m3)
Antworten