nicht aneinander grenzende Zellen mit Makro ausblenden
Moderator: Moderatoren
-
- Beiträge: 4
- Registriert: Sa, 19.12.2020 04:33
nicht aneinander grenzende Zellen mit Makro ausblenden
Gibt es eine Möglichkeit, mit Hilfe eines Makros nicht aneinander grenzende Zellen/Zeilen/Spalten/Bereiche auszublenden?
Das Ausfüllen von mehreren separaten Zellen ist ja in oO nicht möglich. Wohl aber das Einfärben/Löschen/ Ausblenden u.a., indem man die betreffenden Zellen mit gedrückter Strg-Taste markiert. Wenn man das aber mit Makro versucht, indem man die betr. Zellen/Spalten/Bereiche auflistet, wird nur die erstgenannte Adresse berücksichtigt.
Interessanterweise hat Excel damit kein Problem. Und wenn man eine Excel-Datei mit dieser Funktion mit oO öffnet, funktioniert das Makro auch dann - aber nur, bis man die Datei im odt-Format abspeichert.
Der Vorgang soll nicht seriell ablaufen! Dafür ist die Datei zu umfangreich und damit die Laufzeit zu lang - dann macht man es erfahrungsgemäß lieber gar nicht.
Beispiel: Es soll jede zweite Zeile einer Tabelle auf Knopfdruck ausgeblendet werden
Hat jemand eine Idee oder einen Verweis? Ich habe bisher nichts Funktionierendes gefunden.
Vielen Dank im Voraus
Das Ausfüllen von mehreren separaten Zellen ist ja in oO nicht möglich. Wohl aber das Einfärben/Löschen/ Ausblenden u.a., indem man die betreffenden Zellen mit gedrückter Strg-Taste markiert. Wenn man das aber mit Makro versucht, indem man die betr. Zellen/Spalten/Bereiche auflistet, wird nur die erstgenannte Adresse berücksichtigt.
Interessanterweise hat Excel damit kein Problem. Und wenn man eine Excel-Datei mit dieser Funktion mit oO öffnet, funktioniert das Makro auch dann - aber nur, bis man die Datei im odt-Format abspeichert.
Der Vorgang soll nicht seriell ablaufen! Dafür ist die Datei zu umfangreich und damit die Laufzeit zu lang - dann macht man es erfahrungsgemäß lieber gar nicht.
Beispiel: Es soll jede zweite Zeile einer Tabelle auf Knopfdruck ausgeblendet werden
Hat jemand eine Idee oder einen Verweis? Ich habe bisher nichts Funktionierendes gefunden.
Vielen Dank im Voraus
Re: nicht aneinander grenzende Zellen mit Makro ausblenden
Teils (Zeilen, Spalten) ja, teils (Zellen, Bereiche) nein oder ich verstehe letztere Anforderung miss.Gibt es eine Möglichkeit, mit Hilfe eines Makros nicht aneinander grenzende Zellen/Zeilen/Spalten/Bereiche auszublenden?
Was genau meint das? Die Funktion das man bei Excel gleichzeitig in mehrere Zellen/Bereiche einfügen kann ist eine Funktion des Programms und keine Funktion einer Datei.Und wenn man eine Excel-Datei mit dieser Funktion mit OO öffnet, funktioniert das Makro auch dann - aber nur, bis man die Datei im odt-Format abspeichert.
Wenn in einer Datei hingegen ein Makro vorliegt IST das ein Makro und es wäre zu klären warum das in OO nicht funktioniert.
Die benannte Situation das das Makro beim Öffnen einer 'Excel-Darei' in OO funktioniert und nach Abspeichern als ods nicht mehr ist ungewöhnlich und aber wäre z.B. dadurch erklärbar das OO die beim Öffnen der Excel-Datei automatisch eingefügte sog. Kompatibilitätsoption (Option VBASupport 1) nicht mit abspeichert, nur weiß ich nicht unter welchen Umständen sich OO so (falsch) verhält.
Lade bitte eine beispielhafte Excel-Datei hoch welche sich so verhält, dann kann man das klären.
Selbst wenn Du dass Ausblenden in einem Schritt machst, müssten doch vorher Markierungen erfolgen um überhaupt festzulegen was ausgeblendet werden soll, selbst das ist aber verhältnismäßig langsam, z.B.:Hat jemand eine Idee oder einen Verweis?
Code: Alles auswählen
bereiche = ThisComponent.CreateInstance("com.sun.star.sheet.SheetCellRanges")
For i = 1 To 5000
bereiche.addRangeAddress(ThisComponent.Sheets(0).getCellRangeByName("A" & (i+1)*2).getRangeAddress(), False)
Next i
ThisComponent.getCurrentController.Select(bereiche)
Gruß
Stephan
Re: nicht aneinander grenzende Zellen mit Makro ausblenden
Moin,
ich würde das Ausblenden ala
Da braucht man kein Makro.
Gruß R
ich würde das Ausblenden ala
mit dem Autofilter machen, Beispieldatei anbei.hannov1942 hat geschrieben: Sa, 19.12.2020 05:19 Beispiel: Es soll jede zweite Zeile einer Tabelle auf Knopfdruck ausgeblendet werden
Da braucht man kein Makro.
Gruß R
- Dateianhänge
-
- Jede_nte_Zeile_Ausblenden_Autofilter.ods
- (15.38 KiB) 68-mal heruntergeladen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
-
- Beiträge: 4
- Registriert: Sa, 19.12.2020 04:33
Re: nicht aneinander grenzende Zellen mit Makro ausblenden
Hallo, Stephan
Zunächst mal vielen Dank für die schnelle Antwort.
Möglicherweise habe ich mich in einigen Punkten etwas zu knapp ausgedrückt, um evtl. Leser nicht zu verschrecken.
Der Vergleich mit Einfügen bzw. Löschen usw. bezog sich nur auf die "händische" Markierung mit gedrückter Strg.-Taste.
Das von mir benötigte Makro soll "nur" jede zweite Zeile ausblenden, damit man einen besseren (und umfangreicheren) Überblick über die wichtigeren nicht ausgeblendeten Zeilen hat. Zur weiteren Bearbeitung werden die ausgeblendeten Zeilen später wieder eingeblendet (das ganze funktioniert mit einer toggle-Funktion).
Dein Argument, dass ja ohnehin eine Berechnung/Selektion der auszublendenden Zeilen erfolgen muss, ist plausibel. Ich habe aber den Eindruck, dass (zumindest bei meinem etwas lahmen Notebook) der Vorgang des Ausblendens der zeitbestimmende Faktor ist: Das Ausblenden mit einer for/next-Schleife dauerte bei einer 100-Zeilen-Datei ca. 7 Sekunden (man konnte das aufeinanderfolgende Ausblenden beobachten).
Da aber bei vielen Dateien nicht alle Zeilen relevanten Inhalt enthalten, habe ich dann an den Anfang des Makros eine for/next-Schleife gesetzt, die abfragt, welche Zeile als letzte einen relevanten Inhalt hat. Diese Abfrage dauert weniger als eine Sekunde. Dadurch konnte die Laufzeit des Ausblende-Makros für viele Fälle auf ca. 3 Sekunden verringert werden, weil das Makro nicht mehr bis Zeile 100 laufen musste.
Das ist schon eine brauchbare Lösung, vor allem für einen schnelleren Rechner. Aber mich frustrierte, dass man einen Vorgang, der mit Maus und Tastatur einfach (aber zeitaufwendig) zu erledigen ist, nicht automatisieren kann.
Den von Dir angegebenen Code habe ich schon mal eingebaut. Aber noch ohne Erfolg. Wahrscheinlich fehlt mir da noch was. Ich werde - auch wg. der Excel-Kompatibilität - noch was basteln müssen und melde mich dann später wieder.
Viele Grüße
hannov1942
Zunächst mal vielen Dank für die schnelle Antwort.
Möglicherweise habe ich mich in einigen Punkten etwas zu knapp ausgedrückt, um evtl. Leser nicht zu verschrecken.
Der Vergleich mit Einfügen bzw. Löschen usw. bezog sich nur auf die "händische" Markierung mit gedrückter Strg.-Taste.
Das von mir benötigte Makro soll "nur" jede zweite Zeile ausblenden, damit man einen besseren (und umfangreicheren) Überblick über die wichtigeren nicht ausgeblendeten Zeilen hat. Zur weiteren Bearbeitung werden die ausgeblendeten Zeilen später wieder eingeblendet (das ganze funktioniert mit einer toggle-Funktion).
Dein Argument, dass ja ohnehin eine Berechnung/Selektion der auszublendenden Zeilen erfolgen muss, ist plausibel. Ich habe aber den Eindruck, dass (zumindest bei meinem etwas lahmen Notebook) der Vorgang des Ausblendens der zeitbestimmende Faktor ist: Das Ausblenden mit einer for/next-Schleife dauerte bei einer 100-Zeilen-Datei ca. 7 Sekunden (man konnte das aufeinanderfolgende Ausblenden beobachten).
Da aber bei vielen Dateien nicht alle Zeilen relevanten Inhalt enthalten, habe ich dann an den Anfang des Makros eine for/next-Schleife gesetzt, die abfragt, welche Zeile als letzte einen relevanten Inhalt hat. Diese Abfrage dauert weniger als eine Sekunde. Dadurch konnte die Laufzeit des Ausblende-Makros für viele Fälle auf ca. 3 Sekunden verringert werden, weil das Makro nicht mehr bis Zeile 100 laufen musste.
Das ist schon eine brauchbare Lösung, vor allem für einen schnelleren Rechner. Aber mich frustrierte, dass man einen Vorgang, der mit Maus und Tastatur einfach (aber zeitaufwendig) zu erledigen ist, nicht automatisieren kann.
Den von Dir angegebenen Code habe ich schon mal eingebaut. Aber noch ohne Erfolg. Wahrscheinlich fehlt mir da noch was. Ich werde - auch wg. der Excel-Kompatibilität - noch was basteln müssen und melde mich dann später wieder.
Viele Grüße
hannov1942
Re: nicht aneinander grenzende Zellen mit Makro ausblenden
Hallo,
was ist "relevanter Inhalt"? Nach welchen Kriterien willst du was ausblenden?
Es wäre vielleicht hilfreich, wenn du uns dein Makro oder besser deine Datei mal vorstellen würdest.
was ist "relevanter Inhalt"? Nach welchen Kriterien willst du was ausblenden?
Es wäre vielleicht hilfreich, wenn du uns dein Makro oder besser deine Datei mal vorstellen würdest.
Gruß,
mikeleb
mikeleb
-
- Beiträge: 4
- Registriert: Sa, 19.12.2020 04:33
Re: nicht aneinander grenzende Zellen mit Makro ausblenden
Hallo, F3K total
Zunächst mal bitte ich um Nachsicht, dass ich hier im Forum möglicherweise technisch nicht alles sinnvoll bzw. richtig mache. Ich bin zum ersten mal selbst in so was aktiv - habe bisher immer nur als Zaungast gelesen (und nur daher stammen meine bescheidenen Kenntnisse).
Die Idee, das ganze mit Autofilter zu lösen, ist an dieser Stelle sehr elegant. Ich habe es an anderer Stelle früher bei eigenen Tabellen auch schon mal eingesetzt, vor allem, weil man flexibel in der Handhabung ist.
Allerdings habe ich beobachtet, dass meine Bekannte, für die diese Datei gedacht ist, die Filterfunktion nicht wirklich gerne benutzt (ich weiß nicht, warum), besonders, wenn ansonsten eine Reihe anderer Funktionen mit Makros ablaufen.
Dass ich die Idee mit dem Makro weiter verfolge, hängt damit zusammen, dass das Problem mit der Mehrfachselektion ja auch bei anderen Aktionen auftritt. Deswegen noch mal kurz meine Beobachtungen zusammengefasst:
Wenn man mit Hilfe der Strg-Taste mehrere Zellen markiert, kann man (im Unterschied zu Excel) anschließend in die markierten Zellen keine Werte und keine Gleichungen eintragen und auch nichts einkopieren. (Mehrfachselektion nicht möglich). Wohl aber ist es möglich, die selektierten Zellen zu formatieren (Farbe, Rahmen, bedingte Formatierung), Inhalte zu löschen und, wenn es sich um Zeilen oder Spalten handelt, diese auszublenden. Und das geht schnell!
Wenn man nun eine Mehrfachselektion z.B. mehrerer Zeilen und anschließendes Ausblenden mit dem Makro-Recorder aufzeichnet, findet man im aufgezeichneten Makro keine Adresse. Und wenn man das Makro dann laufen lässt, wird nur die Zeile ausgeblendet, an der zufällig der Cursor steht.
Zeichnet man ein entsprechendes Makro zum Einfärben von Zellen auf, erscheint im Skript nur die Adresse der als erstes selektierten Zelle, und entsprechend läuft das Makro dann auch ab.
Wenn man ein Makro, das für das Ausblenden einzelner Zeilen in einer for/next-Schleife gedacht war (das dauert je nach Größe des Arbeitsblattes ziemlich lang), dann dahingehend abwandelt, dass die Adressen - durch Komma getrennt - aufgelistet werden, wird nur die Zeile der ersten gelisteten Adresse ausgeblendet.
Was mir fehlt, ist demnach eine Routine, die die Adressen der markierten Zellen/Zeilen/Spalten für die beabsichtigte Aktion bereithält, so, wie bei der Selektion per Hand.
Zunächst mal bitte ich um Nachsicht, dass ich hier im Forum möglicherweise technisch nicht alles sinnvoll bzw. richtig mache. Ich bin zum ersten mal selbst in so was aktiv - habe bisher immer nur als Zaungast gelesen (und nur daher stammen meine bescheidenen Kenntnisse).
Die Idee, das ganze mit Autofilter zu lösen, ist an dieser Stelle sehr elegant. Ich habe es an anderer Stelle früher bei eigenen Tabellen auch schon mal eingesetzt, vor allem, weil man flexibel in der Handhabung ist.
Allerdings habe ich beobachtet, dass meine Bekannte, für die diese Datei gedacht ist, die Filterfunktion nicht wirklich gerne benutzt (ich weiß nicht, warum), besonders, wenn ansonsten eine Reihe anderer Funktionen mit Makros ablaufen.
Dass ich die Idee mit dem Makro weiter verfolge, hängt damit zusammen, dass das Problem mit der Mehrfachselektion ja auch bei anderen Aktionen auftritt. Deswegen noch mal kurz meine Beobachtungen zusammengefasst:
Wenn man mit Hilfe der Strg-Taste mehrere Zellen markiert, kann man (im Unterschied zu Excel) anschließend in die markierten Zellen keine Werte und keine Gleichungen eintragen und auch nichts einkopieren. (Mehrfachselektion nicht möglich). Wohl aber ist es möglich, die selektierten Zellen zu formatieren (Farbe, Rahmen, bedingte Formatierung), Inhalte zu löschen und, wenn es sich um Zeilen oder Spalten handelt, diese auszublenden. Und das geht schnell!
Wenn man nun eine Mehrfachselektion z.B. mehrerer Zeilen und anschließendes Ausblenden mit dem Makro-Recorder aufzeichnet, findet man im aufgezeichneten Makro keine Adresse. Und wenn man das Makro dann laufen lässt, wird nur die Zeile ausgeblendet, an der zufällig der Cursor steht.
Zeichnet man ein entsprechendes Makro zum Einfärben von Zellen auf, erscheint im Skript nur die Adresse der als erstes selektierten Zelle, und entsprechend läuft das Makro dann auch ab.
Wenn man ein Makro, das für das Ausblenden einzelner Zeilen in einer for/next-Schleife gedacht war (das dauert je nach Größe des Arbeitsblattes ziemlich lang), dann dahingehend abwandelt, dass die Adressen - durch Komma getrennt - aufgelistet werden, wird nur die Zeile der ersten gelisteten Adresse ausgeblendet.
Was mir fehlt, ist demnach eine Routine, die die Adressen der markierten Zellen/Zeilen/Spalten für die beabsichtigte Aktion bereithält, so, wie bei der Selektion per Hand.
-
- Beiträge: 4
- Registriert: Sa, 19.12.2020 04:33
Re: nicht aneinander grenzende Zellen mit Makro ausblenden
Hallo mikeleb
Mit "relevantem Inhalt" wollte ich elegant umgehen, dass ich erläutern müsste, warum ich die Abfrage nach der letzten Zeile nicht mit dem Befehl
oCellCursor.GotoEndOfUsedArea(False)
ermittle, sondern mit einer for/next-Schleife.
Grund ist, dass immer 4 Zellen eine Gruppe bilden, z.B. B8, C8, B9, C9.
B8 enthält einen Namen, B9 eine Aufgabe (aber nur und immer dann, wenn B8 einen Namen enthält)
C8 enthält immer eine Gleichung mit einem Bezug auf eine andere Adresse (ein Zeitrasterin Spalte A)
C9 ist z.Z. leer.
Und diese "Quartette" bilden dann 7*2 Spalten für die 7 Wochentage.
Wenn ich nun den o.g. Befehl benutze, um die letzte benutzte Zelle zu ermitteln, findet der die in Zeile 100, weil da ja auch die Gleichungen in "Quartetten" stehen, die evtl. gar keinen Namen enthalten. Die Tabelle muss aber so groß sein, damit sie möglicherweise so viele Quartette aufnehmen kann.
Darum werden in einer Schleife alle "Namens"-Zellen spaltenweise auf Inhalt überprüft, die Zeilen-Nr. der letzten gefüllten festgehalten, dann zur nächsten Quartett-Spalte gesprungen und geprüft, ob dort darunter weitere gefüllte Namenszellen stehen usw. Die letzte gefundene gibt dann den Bereich, bis zu dem das Ausblenden der jeweils unteren ("Aufgabe" und "leer") erfolgen soll.
Damit erspare ich mir, dass das Ausblend-Makro Zeilen ausblenden muss, die ohnehin unter den letzten ausgefüllten Namenszellen liegen.
Ich werde mal ein Muster posten, falls ich mit der Technik hier klarkomme.
Gruß
hannov1942
Mit "relevantem Inhalt" wollte ich elegant umgehen, dass ich erläutern müsste, warum ich die Abfrage nach der letzten Zeile nicht mit dem Befehl
oCellCursor.GotoEndOfUsedArea(False)
ermittle, sondern mit einer for/next-Schleife.
Grund ist, dass immer 4 Zellen eine Gruppe bilden, z.B. B8, C8, B9, C9.
B8 enthält einen Namen, B9 eine Aufgabe (aber nur und immer dann, wenn B8 einen Namen enthält)
C8 enthält immer eine Gleichung mit einem Bezug auf eine andere Adresse (ein Zeitrasterin Spalte A)
C9 ist z.Z. leer.
Und diese "Quartette" bilden dann 7*2 Spalten für die 7 Wochentage.
Wenn ich nun den o.g. Befehl benutze, um die letzte benutzte Zelle zu ermitteln, findet der die in Zeile 100, weil da ja auch die Gleichungen in "Quartetten" stehen, die evtl. gar keinen Namen enthalten. Die Tabelle muss aber so groß sein, damit sie möglicherweise so viele Quartette aufnehmen kann.
Darum werden in einer Schleife alle "Namens"-Zellen spaltenweise auf Inhalt überprüft, die Zeilen-Nr. der letzten gefüllten festgehalten, dann zur nächsten Quartett-Spalte gesprungen und geprüft, ob dort darunter weitere gefüllte Namenszellen stehen usw. Die letzte gefundene gibt dann den Bereich, bis zu dem das Ausblenden der jeweils unteren ("Aufgabe" und "leer") erfolgen soll.
Damit erspare ich mir, dass das Ausblend-Makro Zeilen ausblenden muss, die ohnehin unter den letzten ausgefüllten Namenszellen liegen.
Ich werde mal ein Muster posten, falls ich mit der Technik hier klarkomme.
Gruß
hannov1942
Re: nicht aneinander grenzende Zellen mit Makro ausblenden
Moin,
ich habe dir ein einfaches Makro geschrieben:in dessen erste Zeile schreibt man die ein- oder auszublendenden Zeilen.
Mit Hilfe dieser Seite: https://wiki.openoffice.org/wiki/Docume ... ation_File habe ich die Tastenkombinatin STRG+ALT+H im Dokument gespeichert und ihr die Ausführung des Makros zugewiesen.
Beispiel anbei.
Einfach STRG+ALT+H drücken, und die orangen Zeilen werden ausgeblendet und beim erneuten Drücken der Tastenkombination wieder eingeblendet.
Gruß R
ich habe dir ein einfaches Makro geschrieben:
Code: Alles auswählen
const ZEILEN = "2,3,5,7,9,10,11,12,14,16,22,24"
Sub Zeilen_Ausblenden_Einblenden
oSheet = ThisComponent.CurrentController.activeSheet
aRows = Split(Zeilen,",")
for i = 0 to uBound(aRows)
oRow = oSheet.Rows(CInt(aRows(i))- 1 )
oRow.isVisible = not oRow.isVisible
next i
End Sub
Mit Hilfe dieser Seite: https://wiki.openoffice.org/wiki/Docume ... ation_File habe ich die Tastenkombinatin STRG+ALT+H im Dokument gespeichert und ihr die Ausführung des Makros zugewiesen.
Beispiel anbei.
Einfach STRG+ALT+H drücken, und die orangen Zeilen werden ausgeblendet und beim erneuten Drücken der Tastenkombination wieder eingeblendet.
Gruß R
- Dateianhänge
-
- Zeile_Ausblenden_Makro_Tastenkombi_STRG_ALT_H.ods
- (16.68 KiB) 63-mal heruntergeladen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: nicht aneinander grenzende Zellen mit Makro ausblenden
Hallo,
Wenn ich dich richtig verstehe, willst du praktisch im Bereich von Zeile 8 bis 100 jede ungerade Zeile aus-/einblenden.
Dafür würde folgendes vereinfachtes (basierend auf F3K Total's) Makro reichen:
Wenn es dich nicht stört, dass diese Zeilen auch ausgeblendet sind, wäre es aber erheblich einfacher und schneller.Damit erspare ich mir, dass das Ausblend-Makro Zeilen ausblenden muss, die ohnehin unter den letzten ausgefüllten Namenszellen liegen.
Wenn ich dich richtig verstehe, willst du praktisch im Bereich von Zeile 8 bis 100 jede ungerade Zeile aus-/einblenden.
Dafür würde folgendes vereinfachtes (basierend auf F3K Total's) Makro reichen:
Code: Alles auswählen
Sub Zeilen_Ausblenden_Einblenden2
oSheet = ThisComponent.CurrentController.activeSheet
for i = 8 to 100 Step 2
oRow = oSheet.Rows(i)
oRow.isVisible = not oRow.isVisible
next i
End Sub
Gruß,
mikeleb
mikeleb
Re: nicht aneinander grenzende Zellen mit Makro ausblenden
herzlichen Dank für die Veralberung errst ausdrüvklich zu schreiben: "Der Vorgang soll nicht seriell ablaufen!" jetzt aber eine solche Lösung als "genau das" [Richtige] zu bezeichnenDas ist genau das, was ich brauche
Stephan
Re: nicht aneinander grenzende Zellen mit Makro ausblenden
Hallo,
edit: Vielleicht noch zur Erläuterung: Das Makro blendet per Button jede zweite Zeile zwischen Zeile 9 und Zeile 101 aus bzw. bei erneutem Button-Klick alle (!) Zeilen 9-101 wieder ein.
So aufwändig ist es nicht. Es reicht ein Makro.Das macht das Toggeln zwar etwas aufwendiger (es müssen 2 unterschiedliche Teilmakros zusammengehängt werden)
edit: Vielleicht noch zur Erläuterung: Das Makro blendet per Button jede zweite Zeile zwischen Zeile 9 und Zeile 101 aus bzw. bei erneutem Button-Klick alle (!) Zeilen 9-101 wieder ein.
- Dateianhänge
-
- einausblende.ods
- (8.91 KiB) 76-mal heruntergeladen
Gruß,
mikeleb
mikeleb
Re: nicht aneinander grenzende Zellen mit Makro ausblenden
Moin,
Nochmal, wenn ich den Autofilter verwende, kann ich bei 10000 Zeilen jede zweite, dritte, vierte ... in weniger als 1 Sekunde ausblenden.
Was soll das mit dem Makro?
R
Nochmal, wenn ich den Autofilter verwende, kann ich bei 10000 Zeilen jede zweite, dritte, vierte ... in weniger als 1 Sekunde ausblenden.
Was soll das mit dem Makro?
R
- Dateianhänge
-
- Jede_nte_Zeile_Ausblenden_Autofilter.ods
- (144.01 KiB) 64-mal heruntergeladen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: nicht aneinander grenzende Zellen mit Makro ausblenden
Sag mal, bist du nur ein Troll, der uns hier ärgern will?
Mit jedem Beitrag fällt dir wieder etwas anderes, das dir noch fehlt, ein.
Entweder willst du unter tausenden von Zeilen jede zweite ausblenden, dann kommen wieder Spalten dazu, wie von Hand markiert?
Hast du wirklich ein Problem, oder stänkerst du nur?
Hier nun mein letzter Beitrag zu diesem Thema, mit folgenden zwei Makros kann man gleichzeitig Zeilen uns Spalten, die oben im Makro definiert sind entweder aus- oder Einblenden.
Das ganze wird in meiner Beispieldatei anbei entweder über die Schaltflächen oben auf Tabelle 1 gesteuert, oder mit den Tastenkombinationen
Beides geht blitzschnell.
R
Mit jedem Beitrag fällt dir wieder etwas anderes, das dir noch fehlt, ein.
Entweder willst du unter tausenden von Zeilen jede zweite ausblenden, dann kommen wieder Spalten dazu, wie von Hand markiert?
Hast du wirklich ein Problem, oder stänkerst du nur?
Hier nun mein letzter Beitrag zu diesem Thema, mit folgenden zwei Makros kann man gleichzeitig Zeilen uns Spalten, die oben im Makro definiert sind entweder aus- oder Einblenden.
Code: Alles auswählen
const ZEILEN = "2,3,5,7,9,10,11,12,14,16,22,24"
const SPALTEN = "E,F,J,K,L,O,Q"
Sub Zeilen_und_Spalten_Ausblenden
oSheet = ThisComponent.CurrentController.activeSheet
aRows = Split(ZEILEN,",")
aColumns = Split(SPALTEN,",")
for i = 0 to uBound(aRows)
oRow = oSheet.Rows(CInt(aRows(i))- 1 )
oRow.isVisible = false
next i
for i = 0 to uBound(aColumns)
oColumn = oSheet.columns.getbyName(aColumns(i))
oColumn.isVisible = false
next i
End Sub
Sub Zeilen_und_Spalten_Einblenden
oSheet = ThisComponent.CurrentController.activeSheet
aRows = Split(ZEILEN,",")
aColumns = Split(SPALTEN,",")
for i = 0 to uBound(aRows)
oRow = oSheet.Rows(CInt(aRows(i))- 1 )
oRow.isVisible = true
next i
for i = 0 to uBound(aColumns)
oColumn = oSheet.columns.getbyName(aColumns(i))
oColumn.isVisible = true
next i
End Sub
- STRG+ALT+H für hide, ausblenden
- STRG+ALT+S für show, einblenden
Beides geht blitzschnell.
R
- Dateianhänge
-
- Zeilen_Spalten_ausblenden_Makro_Tastenkombi_STRG_ALT_H__STRG_ALT_S.ods
- (17.69 KiB) 61-mal heruntergeladen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO