Tabulka v Excelu   zodpovězená otázka

Offtopic

Zdravím,

mám dotaz ohledně Excelu, v kterým zas tolik neumím. Potřeboval bych alespoň nějakej nástřel čím začít.

"Vzhled" stránky je na tomto obrázku: http://www.mylms.cz/pic/excel-tabulka-1....

Představuju si to tak, že bych měl na jednom listu (pravá strana obrázku) velkou tabulku do kterej bych vyplnil třeba 90 řádků. Na jiným listu (levá strana obrázku) bych měl rozvržení výsledné stránky pro tisk. Vždy by se přidala hlavička (několik řádků buněk), patička (několik řádků buněk) a 30 řádků z velké tabulky. Při tisku by se navíc zobrazilo kolikátá to je stránka.

Nevím čím začít. Jde vůbec něco takovýho?

Edit:

Tady je ještě skutečnej vzhled tabulky: http://www.mylms.cz/pic/excel-tabulka-2.... To zeleně označený by mělo bejt čtený např. z jinýho listu. Jde o to, abych si na jednom listu (?) vytvořil třeba 300 záznamů a pak když bych to tisknul by to bylo třeba 100 takovejch stránek.

Díky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Řeknu to jednodušše a alibisticky - v excelu je možné vše. Tudíž i Váš požadavek. Není to ale na krátké vysvětlení,chce to s Excelem už umět.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Jistě že úlohu lze řešit a to s použitím VBA (tedy ne "Off Topic" ale "Visual Basic 6 a jiné verze"

A není ani potřeba s Excelem zas tak moc umět, jak je tu zmíněno. Stačí znát základy programování, použít záznam maker a trochu upravit a doplnit.

Jde je o to oblast s 30 řádky z List2 (od zadaného řádku) překopírovat do List1 od řádku 7 (jen hodnoty, bez formátu) a zvolenou oblast tisku poslat na tiskárnu. To vše dát do opakovacího cyklu podle zadaného počtu stránek.

Toto je základ - zaznamenané makro podle popisu výše a snímku, jak stránka vypadá:

Sub Makro1()
'
' Makro1 Makro
' Makro zaznamenané 12.6.2012
'
    Range("A1:T30").Select
    Selection.Copy
    Sheets("List1").Select
    Range("A7").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub

A po odstranění Select (není potřeba) a doplnění o potřebné proměnné:

Public Sub ZkusTo()
  ' existuje Sešit1 s List1 a List2
  ' na List1 jsou v oblasti "$A$1:$T$53" data k tisku...
  '    - nastavení sešitu k tisku a nastavení tiskárny neřeším
  ' na List1 v buňce V1 je číslo řádku, od kterého začne vkládání pro tisk
  ' na List1 v buňce V2 je číslo opakování tisku
  ' na List2 jsou od A1 data pro vkládání po 30 řádcích do List1 od řádku 7
  Dim i As Integer
  Dim OdRadku As Integer
  Dim PocetStranek As Integer
  Dim OblastProCopy As Range ' adresa oblasti pro kopírování
  Dim Adresa As String  ' pro sestavení adresy oblasti pro kopírování
  Const PocetRadku As Integer = 30 ' počet řádků pro kopírování
  Dim Strana As Integer, StranCelkem As Integer
  ' načtení vstupních hodnot:
  OdRadku = Sheets("List1").Range("V1").Value
  PocetStranek = Sheets("List1").Range("V2").Value
  Sheets("List1").Range("M2").Value = Date
  Strana = (OdRadku - 1) / 30 + 1
  StranCelkem = PocetStranek + Strana - 1
  For i = 1 To PocetStranek
    Sheets("List1").Range("T1").Value = Strana & " / " & StranCelkem
    Adresa = "A" & OdRadku & ":T" & OdRadku + PocetRadku - 1
    Sheets("List2").Range(Adresa).Copy
    Sheets("List1").Range("a7").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    OdRadku = OdRadku + PocetRadku
    Strana = (OdRadku - 1) / 30 + 1
    Tisk
    DoEvents
  Next
End Sub

'---------------
Sub Tisk()
'
' Makro zaznamenané 12.6.2012
' Cíl tisku jsem na zkoušku zvolil místo tiskárny utilitu "FinePrint"
'
    Application.CutCopyMode = False
    Application.ActivePrinter = "FinePrint na FPR6:"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
        "FinePrint na FPR6:"
End Sub

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Teď vidím, že definice "OblastProCopy As Range" je zbytečná, nepoužil jsem ji, stačila "Adresa" oblasti...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Díky.

Moc mi to pomohlo :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback