< návrat zpět

MS Excel


Téma: Zápatí - číslování stránek ve VBA rss

Zaslal/a 9.2.2021 20:05

Jsem na VBA totální lama.
Tvořím zatím svůj druhý kód, čistě hledáním na internetu.
Snažím se ulehčit si život makrem, které by mi zapisovalo do zápatí hodnoty ze třech buněk listu, abych to nemusel pořád opisovat ručně (což musím dělat nyní).

V zásadě to funguje jak potřebuji, akorát troskotám na poslední věci, kterou se mi nedaří vyřešit (vím, bude to primitivní, ale neznám základní principy VBA, takže to neumím dohledat).

Jde o to, že v .RightFooter chci mít zapsáno "číslo stránky / celkem stránek". Ale s tím, že buňkou R6 definuji číslo první stránky. To si načíst do .FirstPageNumber umím. Ale nedaří se mi přijít na to, co napsat namísto "&N" tak, aby se mi celkový počet stran navýšil o ono číslo první strany (nečísluje se od jedné, ale třeba od 4, od 6, od 8, atd., čemuž je potřeba přizpůsobit i celkový počet stránek)


Sub Zapati()
With ActiveSheet.PageSetup
.LeftFooter = "&K808080" & Range("R4")
.CenterFooter = "&K808080" & "arch. č. " & "&B" & Range("R5")
.FirstPageNumber = Range("R6")
.RightFooter = "&K808080" & "&P" & " / " & "&N"
End With
End Sub

Zaslat odpověď >

#049788
avatar
Do toho .RightFooter se marně snažím všemožně dostat výpočet, ale pořád havaruju buď na nějaké chybě, anebo že to nic nepočítá:
.RightFooter = "&K808080" & "&P" & " / " & VPageBreaks.Count + FirstPageNumbercitovat
#049795
elninoslov
VPageBreaks.Count
zmente na
ActiveSheet.VPageBreaks.Count
A čo myslíte tým výpočtom? Vzorec? To nejde. Musíte si výpočet urobiť buď vzorcom alebo vo VBA a do hlavičky dať výsledok.citovat
#049800
avatar
Kdybych nenačítal hodnotu .FirstPageNumber, tak je to jednoduché.
První strana by byla 1, poslední by byla "&N".

Jenže když je první strana nerovna 1 (ale třeba 6), tak je potřeba zvýšit celkový počet stran o tuto hodnotu. A tu hodnotu potřebuji nějak spočítat, což (jsa VBA lama) neumím (nějaké pokusy jsem zkoušel, ale marně).

Proto se na to ptám, jak to udělat :-)citovat
#049805
elninoslov
Takže máte v liste data na 5 strán na výšku.
Chcete tlačiť až od 3 strany, a to tak, že:

1. vytlačená strana (v liste je to strana 3.) bude mať 1/3.
2. vytlačená strana (v liste je to strana 4.) bude mať 2/3.
3. vytlačená strana (v liste je to strana 5.) bude mať 3/3.

To je to čo chcete?citovat
#049808
avatar
Ne.
Mám různé listy, které mají různé počty stran.
Každý z těchto listů může mít jiné počáteční číslo první strany, které se načítá vždy z buňky R6 každého listu.

Příklad:

List má třeba 3 tištěné strany.
V buňce R6 má zapsáno, že první list má číslovat od 4.
1. vytištěná strana má mít v pravém zápatí 4/6
2. vytištěná strana má mít v pravém zápatí 5/6
3. vytištěná strana má mít v pravém zápatí 6/6

Jiný list má třeba 4 tištěné strany.
V buňce R6 má zapsáno, že první list má číslovat od 2.
1. vytištěná strana má mít v pravém zápatí 2/5
2. vytištěná strana má mít v pravém zápatí 3/5
3. vytištěná strana má mít v pravém zápatí 4/5
4. vytištěná strana má mít v pravém zápatí 5/5

Neboli u každého listu je nutno:
- nejprve načíst, jaké číslo má mít první list
- pak zjistit kolik bude mít daný list stran
- podle toho dopočítat celkový počet listů (= číslo za lomítkem)citovat
#049820
avatar
Prosím prosím, neporadí mi někdo, jak tam ten výpočet propašovat? Marně si s tím lámu hlavu, moc by mi to pomohlo (protože to nyní všechno musím vypisovat vždy ručně, a samozřejmě v tom sekám chyby) ...citovat
#049824
avatar
Tak dlouho jsem si s tím lámal hlavu, až jsem na to přišel! :-)

Ten hlavní problém byl v tom, že pro počítání stránek tam má být HPageBreaks (a ne VPageBreaks) ...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