[SOLVED] Ukrywanie wielu wierszy zdeklarowanych "na sztywno"

Dyskusje dotyczące tworzenia makropoleceń, pisania skryptów oraz programowania przy użyciu UNO
deimos
Posty: 3
Rejestracja: pn wrz 30, 2013 8:05 pm

[SOLVED] Ukrywanie wielu wierszy zdeklarowanych "na sztywno"

Post autor: deimos »

INWOKACJA: Witajcie, czas przemówić, albo może zaśpiewam: Panie Janie, Panie Janie_J rano wstań, pomoż z belstarem
takiemu nieudacznikowi co makra napisac nie potrafi ;)

FABUŁA: W Calcu zachodzi nieraz potrzeba stworzyc i odwoływać się do pomocniczych kolum czy wierszy.
Kiedy przychodzi do drukowania nie chcemy ich jednak widziec. Kiedy są dwie, czy trzy można ukryć je prawoklikiem,
kiedy jednak robi się ich 30 ponad przydało by się makro

I tutaj zaczyna się moja historia.
Stwórzmy dla potomnych miejsce gdzie znajdą MAKRO UKRYWAJĄCE ZADEKLAROWANE WIERSZE(lub kolumny), konkretne
które ''na sztywno" zadeklaruje użyszkodnik.

w internecie znalazłem taki kawałek kodu (mozliwe ukrywanie i wierszy i kolumn):

Kod: Zaznacz cały

REM  *****  BASIC  *****

Sub Ukryj
   ' Create a new spreadsheet document.
   oDoc=ThisComponent
   ' Get a sheet from the document.
'   oSheet = oDoc.getSheets().getByIndex( 0 )
   oSheet = oDoc.getSheets().getByName( "BZ" )
   
   ' Get the collection of columns.
'   oColumns = oSheet.getColumns()
   ' Get a specific column.
'   oColumn = oColumns.getByName( "C" )
   ' Hide the column.
'   oColumn.IsVisible = False
   
   ' Get the  collection of rows.
   oRows = oSheet.getRows()
   ' Get a specific row.
   oRow = oRows.getByIndex("jak_to_zaadresowac") 
   ' Hide the row.
   oRow.IsVisible = False
End Sub 
Makro działa, jednak jedynie tylko do pierwszego wiersza, pozostałe jak na złość ukryć się nie chcą.
Wasze wprawne oczy pewnie juz widzą błąd w programowaniu, więc proszę - uświadomcie mnie.

PS. chciałbym aby ukryały się wiersze począwszy od 7,9,11,13..i tak co drugi do
65wiersza.

PPS.
Panowie, gdyby to Was nie przeciążyło, da się dopisać coś zeby za drugim kliknięciem guzika, do ktorego przypisze makro owe - wiersze się pojawiały? :)

DZIĘKUJĘ ZA POMOC!!
Ostatnio zmieniony pn wrz 30, 2013 11:22 pm przez deimos, łącznie zmieniany 3 razy.
OpenOffice 3.4.1 na Windows 7
belstar
Posty: 654
Rejestracja: czw mar 17, 2011 9:08 am

Re: <macro>ukrywanie wielu wierszy zdeklarowanych "na sztywn

Post autor: belstar »

może tak

Kod: Zaznacz cały

 For i = 7 To 65 step 2
       ' Get a specific row.
       	oRow = oRows.getByIndex(i)
       ' Hide the row.
       	oRow.IsVisible = False
Next i
LibreOffice 5.1.2.2 Ubuntu 16 LTS
deimos
Posty: 3
Rejestracja: pn wrz 30, 2013 8:05 pm

Re: <macro>ukrywanie wielu wierszy zdeklarowanych "na sztywn

Post autor: deimos »

Za Twoją radą stworzyłem coś takiego:

Kod: Zaznacz cały

REM  *****  BASIC  *****
Sub Ukryj
   ' Create a new spreadsheet document.
   oDoc=ThisComponent
   ' Get a sheet from the document.
'   oSheet = oDoc.getSheets().getByIndex( 0 )
   oSheet = oDoc.getSheets().getByName( "BZ" )
   
For i = 8 To 66 step 2
       ' Get a specific row.
          oRow = oRows.getByIndex(i)
       ' Hide the row.
          oRow.IsVisible = False
Next i
End Sub 
Ale sie sypie na linijce "oRow = oRows.getByIndex(i)"
Dostanę wskazówkę co spaprałem? <:
OpenOffice 3.4.1 na Windows 7
belstar
Posty: 654
Rejestracja: czw mar 17, 2011 9:08 am

Re: <macro>ukrywanie wielu wierszy zdeklarowanych "na sztywn

Post autor: belstar »

deimos pisze:Ale sie sypie na linijce "oRow = oRows.getByIndex(i)"
Bo musi, brak linijki:

Kod: Zaznacz cały

oRows = oSheet.getRows()
deimos pisze:Panowie, gdyby to Was nie przeciążyło, da się dopisać coś zeby za drugim kliknięciem guzika, do ktorego przypisze makro owe - wiersze się pojawiały
Załącznik
Załączniki
Pokaż_Ukryj_wiersze.ods
(10.29 KiB) Pobrany 426 razy
LibreOffice 5.1.2.2 Ubuntu 16 LTS
deimos
Posty: 3
Rejestracja: pn wrz 30, 2013 8:05 pm

Re: <macro>ukrywanie wielu wierszy zdeklarowanych "na sztywn

Post autor: deimos »

sa-sa-sa, oj to już będzie działać (o:
Dzięki Belstar!
Łiiii-ha!
OpenOffice 3.4.1 na Windows 7
ODPOWIEDZ