< návrat zpět

MS Excel


Téma: Rozdělení tabulky u více listů rss

Zaslal/a 19.11.2019 17:27

Zdravím
Řeším neřešitelný problém, ale snad někoho něco napadne.
Mám list v excelu, který musí mít opakující se záhlaví a opakující se zápatí. Layout stránky je tedy:
- Záhlaví
- Text
- Tabulka
- Text
- Zápatí
Vše funguje jak má až do chvíle, kdy je tabulka větší a vše vyjmenované se nevejde na jednu stránku. V takovém případě obsah pokračuje na další stránku. Bohužel, nepřišel jsem na to, jak rozdělovat tabulku mezi řádky, respektive aby byl celý obsah řádku na stránce první a celý obsah řádku na straně druhé. Nyní jednoduše rozdělí stránky uprostřed řádku tabulky, což je pro mne problém.

Zaslat odpověď >

Strana:  « předchozí  1 2 3   další »
#045020
avatar
Asi jsem natvrdlý, ale jednodušeji to napsat asi nejde a točíme se pořád v kruhu. Kouknu-li se na layout, tak vidím zápatí, vidím také jakýsi doprovodný text (adresy dodavatele a odběratele, číslo objednávky), následně tabulku s komponenty, pak opět doprovodný text (termíny dodání a poznámky) a nakonec patička. Pokud se mě někdo ptá na tabulku a já pošlu soubor, vytvořený screen a navíc dopíšu, že je tabulka na řádcích 16 až 72 a dotyčný přesto odepíše, že neví kde je tabulka kterou řeším, nevím jak jinak popsat. Problém je v tom, že v excelu si vytvářím ohraničením jakousi tabulku, ale excel sám o sobě je také tabulka.

Víceméně stále upakuji, že layout v podstatě není potřeba řešit. Potřebuji najít způsob, jak přesvědčit Excel, aby nerozděloval tisknutelnou oblast v místě, kde je sloučená buňka. Prostě a jednoduše, nemohu poslat objednávku dodavateli, kterou v místě konce a začátku stránky nepřečte.

Na tebou zaslaný soubor jsem se samozřejmě koukal, ale nijak neřeší můj problém. Buňky to rozděluje stejně, jako soubor bez úpravy. V každém případě děkuji za tipy a čas. Čím dál více jsem přesvědčen, že tento problém asi vyřešit nepůjde a snad by šlo udělat nějakou obezličku makrem, ale do toho se nyní pouštět nebudu. Kdyby ale někdo pochopil co potřebuji a znal způsob, budu moc rád, protože nyní objednávky řeším ve Wordu, kde neumím udělat takové výpočty a makra, jako v excelu.citovat
icon #045024
avatar
A nestacilo by ciste nahodou prepnut do zobrazenia koncov stranok (mozno sa to vola trochu inak, kazdopadne, je to na stavovom riadku vpravo ten treti sposob zobrazenia, anglicky Page Break Preview) a nasledne si na sheete rozdelovanie stranok upravit rucne posunutim rozdelenia do pozadovanej polohy?
Mimochodom, zahlavim a zapatim v Exceli sa nemysli to, comu tak hovoris Ty.
Příloha: png45024_test.png (57kB, staženo 34x)
45024_test.png
citovat
#045039
avatar
Ruční upravování by bylo řešení a tímto směrem jsem šel již dříve.

Mým cílem je udělat dokument, který zautomatizuje některé procesy ve smyslu:
- Otevřu dokument, kde jsou všechny výrobky od daného dodavatele a já označím ty materiály, které chci objednat
- Kliknu na tlačítko a dokument si stránku vyexportuje do složky s objednávkami do souboru .pdf, otevře se emailová zpráva s přednastaveným textem pro konkrétního obchodníka a do přílohy se vloží onen .pdf

V dokumentu už mám makro, které mi načítá adresy dodavatelů, makro pro smazání neobjednávaných položek, makro pro uložení do .pdf a do konkrétní složky, makro které mi otevře emailovou zprávu, vloží adresy, vloží text a vloží přílohu…a nakonec ztroskotám na tom, že mi dodavatel nedodal dvě skla, protože se mu řádek přerušil na předělu stránky a on si toho nevšiml.

Takže ruční zalamování stránek by bylo řešením, ale postrádá to smysl při tom, když jsem vše ošetřil nějakou automatizací.citovat
icon #045042
avatar
Option Explicit
Sub SetPageBreaks()
Dim pb As HPageBreak
For Each pb In ActiveSheet.HPageBreaks
With pb
If .Location <> .Location.MergeArea.Cells(1, 1) Then
Set .Location = .Location.MergeArea.Cells(1, 1)
End If
End With
Next pb
End Sub

Osetrenie pripadnych chyb si uz odladis, vsak? Na vzorovom subore to funguje, neviem, co vsetko moze nastat v reale.citovat
#045043
avatar
@AL
Pekné, ale posledný riadok mi hodilo na samostatnú stranu. 4 Ale to nech si rieši on.
Tiež som rozmýšľal, čo myslí tým záhlavím. Ale asi to bude rečová bariéra. Hlavne že príloha je zbytočná. 6citovat
icon #045044
avatar
@ marjankaj, iste, oblast tlace nie je nafukovacia, takze bud zmensit font/velkost(skalovanie) stranky, alebo holt vznikne v niektorych pripadoch dalsia stranka. K zahlaviu a zapatiu som sa uz vyjadril, ludia proste pouzivaju svoju terminologiu, odlisnu od excelackej.citovat
#045045
avatar
Ja by som tam asi hodil zlúčené bunky v stlpci Q na konci. Potom by to malo fungovať.citovat
#045046
avatar
Moc děkuji za makro. Pokusím se jej aplikovat a pokud se povede upravit, hodím sem pak soubor, kdyby někdo v budoucnu řešil stejný problém.

Zároveň se omlouvám za nepřesnou terminologii, ale u nás se opravdu jedná o záhlaví a zápatí 1

https://support.office.com/cs-cz/article/z%C3%A1hlav%C3%AD-a-z%C3%A1pat%C3%AD-v-listu-cae2a88c-64a7-42ab-96a4-28d2fc16ad31citovat
icon #045047
avatar
@Klamerka
Beriem späť, moja nepozornosť, mal som za to, že záhlavím myslíš text nad tabuľkou a zápätím text pod ňou. Skutočne tam ale máš i záhlavie a zápätie, ktoré som si predtým nevšimol, nakoľko som sa neprepol do zobrazenia stránok. Omylom som prehlasoval, že dané pojmy používaš nesprávne. Ospravedlňujem sa Ti.citovat
#045050
avatar
Zdravím

Omlouvám se, ale jsem starší ročník a učil jsem se jen Pascal, takže se ještě zeptám:
Chápu deklaraci proměnné, chápu opakování For, chápu podmínky If.
Když jsem uvažoval, jak by mělo případné makro vypadat, jsem uvažoval ve smyslu – Načti si hodnotu buňky a zjisti, zda není naplánováno zalomení stránky. Pokud ano, tak zjisti, jestli není buňka sloučená. Pokud platí obě podmínky, vlož zalomení před tuto buňku. Pokud podmínky splněny nejsou, tak pokračuj na další buňku až na úplný konec tisknutelné oblasti. V zaslaném makru ale vidím jen jednu podmínku a protože neznám příkaz .Location a .Location.MergeArea.Cells(1, 1), úplně nechápu, jak to funguje. Googlím, ale učil jsem se spíše rusky, tak mohu poprosit ještě o vysvětlení těchto dvou příkazů?

Moc děkuji
Sub SetPageBreaks()
Dim pb As HPageBreak ' Deklarace proměnné pb s datovým typem HPageBreak (vodorovné zalomení stránky)
For Each pb In ActiveSheet.HPageBreaks ' Opakuj proměnnou pb (vodorovné zalomení stránky) tak dlouho, dokud nenarazíš na konec tisknutelné oblasti
With pb ' Vykonávej posloupnost příkazů
If .Location <> .Location.MergeArea.Cells(1, 1) Then ' Jestliže .Location se nerovná .Location.MergeArea.Cells(1, 1), pak...
Set .Location = .Location.MergeArea.Cells(1, 1) ' Přiřazení
End If ' Konec opakování
End With ' Konec posloupnosti
Next pb
End Sub
citovat

Strana:  « předchozí  1 2 3   další »

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