< návrat zpět

MS Excel


Téma: Tisk z vlastními okraji rss

Zaslal/a 4.2.2015 7:16

Zdravím vás, potřeboval bych poradit s tiskem. Na papíru mám předtisknutý obdélník 3 sloupcích a já bych se potřeboval tiskem vlézt do prostředního sloupce (levý okraj 5cm a pravý 7cm). To by ještě neměl být problém, ale stále tam doplňuji nějaké záznamy, tudíž bych potřeboval, abych si mohl určit, kolik centimetrů od vrchního okraje má začít tisk (třeba pomocí InputBox nebo podobným způsobem). No a aby toho nebylo málo, potřebuji pod každým záznamem udělat vodorovnou čáru, která by ale byla přes všechny 3 sloupce.
Ptám se vám, exceloví magové, jak to udělat?
Děkuji mnohokrát, MartaV

Zaslat odpověď >

icon #023453
eLCHa
Naskenujte si vzor - připravte si to a tiskněte na čistý papír.citovat
#023466
Hav-Ran
Skombinuj si nasledovné procedúry:
Sub vyberOblasti()
Dim aa As Range, bb As Single
On Error GoTo err1
Pro1:
Set aa = Application.InputBox("Vyber oblast", "OBLAST", Type:=8)
bb = Application.InputBox(Prompt:="Okraje v cm", Type:=1)
Application.ScreenUpdating = False '????????
With ActiveSheet
.PageSetup.PrintArea = aa.Address(False, False)
With .PageSetup
.LeftMargin = Application.CentimetersToPoints(bb) '???
.RightMargin = Application.CentimetersToPoints(bb) '???
.TopMargin = Application.CentimetersToPoints(bb) '???
.BottomMargin = Application.CentimetersToPoints(bb) '???
End With
Application.ScreenUpdating = True '??????
.PrintPreview '??????????
If MsgBox("Vytlacit ?", vbYesNo) = vbYes Then .PrintOut Copies:=1
End With
If MsgBox("Opakovat ?", vbYesNo) = vbYes Then GoTo Pro1
err1:
End Sub

Sub cmOkraje()

With ActiveSheet
With .PageSetup
.PrintArea = "$A$1:$E$9"
.LeftHeader = "Cas:" & "&T" & " Datum: " & "&D"
.CenterHeader = "Strana:" & "&P"
.RightHeader = "" '
.LeftFooter = "" '
.CenterFooter = "" '
.RightFooter = "Subor: " & "&F" '
.LeftMargin = Application.CentimetersToPoints(1.5) ' 1.5cm
.RightMargin = Application.CentimetersToPoints(2.5) ' 2.5cm
.TopMargin = Application.CentimetersToPoints(2) ' 2.0cm
.BottomMargin = Application.CentimetersToPoints(1) ' 1.0cm
.HeaderMargin = Application.CentimetersToPoints(0.8) ' 0.8cm
.FooterMargin = Application.CentimetersToPoints(1.8) ' 1.8cm
.Orientation = xlLandscape '
'.PaperSize = xlPaperB5
End With
.PrintPreview '
End With
End Sub

Oblasť tlačenia - napr. ActiveSheet.PageSetup.PrintArea = "$A$1:$L$37"

Podčiarknutie v listoch - pomocou podmieneného formátucitovat
#023499
avatar
Zdravím, je to super, ale já bych potřeboval zadávat jen horní okraj...šlo by to? Děkuji moccitovat
#023602
elninoslov
Zadávanie horného okraja som poriešil a je to docela presné. Aj prvotné nastavenie šírky ľavého a pravého stĺpca, do ktorých sa netlačí. Ale Excel, pokiaľ je mi známe, neumožňuje zadať šírku sĺpca v cm, preto existujú rôzne algoritmy na prepočty. Ja som použil jeden, čo som našiel, ale rovnako nieje presný, ako aj Application.CentimetersToPoints. Prečo to musia byť voľné stĺpce ? Lebo ako píšeš, potrebuješ podčiarknutie aj v týchto stĺpcoh do ktorých sa netlačí, a ak to nebude stĺpec ale okraj, tak tam nič nevytlačíš, lebo na okraj sa netlačí, ten vymedzuje netlačenú plochu. Procedúru Nastav použiješ iba raz, nastaví šírku týchto stĺpcov. Problém ale je v tom, že každá tlačiareň má vytlačiteľnú plochu. Proste aj keď dáš napr. pravý okraj na 0, nebude 0, ale napr. 0,5 cm. Ako zistiť šírku vytlačiteľnej plochy a jej posunutie sa mi neporadilo zistiť.
Preto by som ti aj vzhľadom na nepresnosť Excelu v nastavení šírky stĺpca, doporučil, nachystať si potrebný počet stĺpcov v prostrednej tlačenej časti strany, a vyskúšal akú nepresnosť ti dá na makro Nastav, a upravil si to manuálnym posunutím šírky stĺpca. Za pár minút snahy a 2-3 vytlačené pokusy to máš nastavené. Keďže potrebuješ 5cm a 7 cm po stranách. Z tohto čo ti tu posielame, použi len horný okraj, tlačenie a automatické formátovanie, zabezpečujúce podčiarknutie.

A teraz otázka pre odborníkov. Prečo mi Excel tlačí miniatúry znakov - viz. príloha PDF, ak tam mám podmienené formátovanie používajúce fnc vo VBA ?
=Row()=LastRow()
Kontroluje akýkoľvek posledný riadok, nielen v stlpci B.
Ak ho dám preč, a použijem vrozec, ktorý ale funguje len na stlpec B, je to OK, a veľkosť písmen je v poriadku.
=Row()=MATCH(TRUE;INDEX(ISBLANK($B$1:$B$100);0;0);0)-1
Příloha: rar23602_tlacodhornehookraja2.rar (27kB, staženo 29x)
citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje