[SOLVED] Pominięcie wiersza na wydruku
[SOLVED] Pominięcie wiersza na wydruku
Witam, mam dokument który posiada 14 wierszy zaczynających się w komórce A19. Zależy mi na tym aby program pomijał te wiersze, jeżeli nie są one wypełnione, na wydruku oraz przy eksportowaniu do pdfa. Przykładowo jest wypełnionych 5 wierszy od A19 do A24, reszta wierszy niewypełnionych pozostaje niewidoczna.
Ostatnio zmieniony czw lut 21, 2013 9:46 am przez 12345, łącznie zmieniany 1 raz.
OpenOffice 3.4.1 XP
Re: Pominięcie wiersza na wydruku
Witam ponownie, w załączniku znajdują się pliki obrazujące z czym mam problem.
Zależy mi aby program ukrył wiersz który w komórce obok (kolumnie A) nie ma wpisanej cyfry, bądź pokazał jeżeli cyfra się tam pojawi. Dodam że w komórkach LP jest już wpisana funkcja PODSTAW i jest zależna od innej tabeli.
Zależy mi aby program ukrył wiersz który w komórce obok (kolumnie A) nie ma wpisanej cyfry, bądź pokazał jeżeli cyfra się tam pojawi. Dodam że w komórkach LP jest już wpisana funkcja PODSTAW i jest zależna od innej tabeli.
- Załączniki
-
- 2.JPG (4.77 KiB) Przejrzano 7860 razy
-
- 1.JPG (10.15 KiB) Przejrzano 7860 razy
OpenOffice 3.4.1 XP
Re: Pominięcie wiersza na wydruku
We właściwościach stylów komórek (Format → Komórka → Ochrona → Wydruk oraz F11 → Style komórek → ppm: Modyfikuj → ...) możesz wybrać [x] Ukryj na wydruku.
Zrób nowy styl komórek Pomiń, tak by miał ustawioną tę właściwość.
Dla wiersza, który chcesz pominąć, ustaw Formatowanie warunkowe z odpowiednim warunkiem, którego spełnienie wymusi zastosowanie stylu Pomiń.
Alternatywna metoda polegałaby na użyciu funkcji STYL() w wyrażeniu warunkowym, ale ten sposób dotyczy tylko komórek z formułami, i na dodatek wymaga modyfikacji formuł.
Zrób nowy styl komórek Pomiń, tak by miał ustawioną tę właściwość.
Dla wiersza, który chcesz pominąć, ustaw Formatowanie warunkowe z odpowiednim warunkiem, którego spełnienie wymusi zastosowanie stylu Pomiń.
Alternatywna metoda polegałaby na użyciu funkcji STYL() w wyrażeniu warunkowym, ale ten sposób dotyczy tylko komórek z formułami, i na dodatek wymaga modyfikacji formuł.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Pominięcie wiersza na wydruku
Niestety brak takich opcji w moim OpenOffice 3.4.1, mogę ukryć komórkę czy wiersz na wydruku ale pozostaje ona pusta a nie ukryta.
OpenOffice 3.4.1 XP
Re: Pominięcie wiersza na wydruku
Bo to tak działa. Arkusz nie jest generatorem dokumentów o dowolnym układzie. Wysokość jest atrybutem wiersza, a nie komórki. Ustawienie wysokości na zero za pośrednictwem rozwiązań typu Formatowanie warunkowe albo ustawienie stylu jest więc nawet w teorii niewykonalne.
Możesz natomiast oprogramować (nawet formułami) przygotowanie obszaru wydruku, który by spełniał Twoje wymagania, ale dane pobierałby z komórek niesformatowanych (lub sformatowanych “niezobowiązująco”).
Możesz natomiast oprogramować (nawet formułami) przygotowanie obszaru wydruku, który by spełniał Twoje wymagania, ale dane pobierałby z komórek niesformatowanych (lub sformatowanych “niezobowiązująco”).
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Pominięcie wiersza na wydruku
Wygląda na to że mój problem rozwiązałoby takie makro jak w tym przypadku http://www.excelforum.pl/topics3/makro- ... vt6071.htm. Jednak nie wiem jak takie makro napisać w OpenOffice.
OpenOffice 3.4.1 XP
Re: Pominięcie wiersza na wydruku
W LO 4.0 to makro prawie działa. Prawie, bo topornie i powoli, i nie sczytuje właściwości Value z przycisku.
Przykro mi, ale niestety nie mam teraz czasu, żeby zajmować się podobnymi robótkami.
Przykro mi, ale niestety nie mam teraz czasu, żeby zajmować się podobnymi robótkami.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Pominięcie wiersza na wydruku
Zmodyfikowałem to makro tak żeby tylko działało w Calcu. Do pełni szczęścia wymaga pozbycia się wywołań VBA z Excela. Jak ci to nie wystarcza to napisz, w wolnej chwili pomogę.
- Załączniki
-
- ukrywanie wierszy.ods
- (15.92 KiB) Pobrany 374 razy
LibreOffice 5.1.2.2 Ubuntu 16 LTS
Re: Pominięcie wiersza na wydruku
Dzięki, działa. Pozwoliłem sobie trochę zmienić makro pod siebie zmieniając jedynie kolumnę na 1 i dodając spację w definiowaniu komórki - gdyż wcześniej formułę w komórce traktowało jako komórkę wypełnioną.
Jeszcze tylko jedno "ale" przycisk obsługujący makro znajduje się w innym arkuszu ("Zmienne") niż tabela która znajduje się w arkuszu "Oferta". Co muszę dodać by to działało?
Jeszcze tylko jedno "ale" przycisk obsługujący makro znajduje się w innym arkuszu ("Zmienne") niż tabela która znajduje się w arkuszu "Oferta". Co muszę dodać by to działało?
OpenOffice 3.4.1 XP
Re: Pominięcie wiersza na wydruku
Masz tu przerobione makro już bez Excelowych instrukcji. Przycisk możesz wstawić w jakim chcesz arkuszu. Do przycisku przypisz to makro (ukrywane są wiersze z arkusza Oferta testowana jest kolumna A.
Kod: Zaznacz cały
Sub ukryj_pokaz(oEv)
Dim Doc As Object
Dim Sheet As Object
Doc = ThisComponent
Sheet = Doc.Sheets.getByName("Oferta")
koniec = getCountA(Sheet)
Etyk = oEv.source.model.Label
For i = 0 To koniec - 1
If Sheet.getCellByPosition(1, i).String = "" Then
If Etyk = "Ukryj" Then
Wiersz = Sheet.Rows().getByIndex(i)
Wiersz.IsVisible = false
ElseIf Etyk ="Pokaż" Then
Sheet.getRows.getByIndex(i).IsVisible = true
End If
End If
Next i
if oEv.source.model.Label = "Ukryj" then
oEv.source.model.Label = "Pokaż"
Else
oEv.source.model.Label = "Ukryj"
End If
End Sub
Function getCountA(Arkusz)
oFunct = createUnoService( "com.sun.star.sheet.FunctionAccess" )
oRange = arkusz.getCellRangeByName("A1:A5000")
getCountA = oFunct.callFunction("COUNTA" , ARRAY(oRange))
End Function
LibreOffice 5.1.2.2 Ubuntu 16 LTS
Re: Pominięcie wiersza na wydruku
Dzięki, u mnie działa z tym że z małą zmianą.
Kod: Zaznacz cały
Sub ukryj_pokaz(oEv)
Dim Doc As Object
Dim Sheet As Object
Doc = ThisComponent
Sheet = Doc.Sheets.getByName("Oferta")
koniec = getCountA(Sheet)
Etyk = oEv.source.model.Label
For i = 0 To koniec - 1
If Sheet.getCellByPosition(0, i).String = " " Then
If Etyk = "Ukryj" Then
Wiersz = Sheet.Rows().getByIndex(i)
Wiersz.IsVisible = false
ElseIf Etyk ="Pokaż" Then
Sheet.getRows.getByIndex(i).IsVisible = true
End If
End If
Next i
if oEv.source.model.Label = "Ukryj" then
oEv.source.model.Label = "Pokaż"
Else
oEv.source.model.Label = "Ukryj"
End If
End Sub
Function getCountA(Arkusz)
oFunct = createUnoService( "com.sun.star.sheet.FunctionAccess" )
oRange = arkusz.getCellRangeByName("A1:A5000")
getCountA = oFunct.callFunction("COUNTA" , ARRAY(oRange))
End Function
OpenOffice 3.4.1 XP