Vymyslím si ... aktualizácia zabezpečenia kvôli ukončeniu vývoju a podpory Flash technológie... Skúste pozrieť, či sa v danom období neinštalovala do systému nejaká aktualizácia, a odobrať ju/ich. Alebo odstráňte postupne na kópii súboru všetky objekty, aby ste zistili ktorý za to môže. A potom ďalej hľadať už cielenejšie riešenie...
To pôjde bez súboru ťažko. Môže to spôsobovať všetko možné, dotaz na web, aktívny obsah, link na externý obrázok, použitie Flash-u vo WebBrowser-i ... a všetko čo Vás napadne.
Podľa mňa netreba transponovať:
Private Sub CommandButton1_Click()
Pocitadlo = 2
Do While Pocitadlo < 30 '
If Worksheets("List2").Cells(2, Pocitadlo) = "" Then
Worksheets("List2").Cells(2, Pocitadlo).Resize(4).Value = Worksheets("List1").Cells(3, 3).Resize(4).Value 'číslo zakázky a objednávky, datum objednávky a expedice
Worksheets("List2").Cells(7, Pocitadlo - 1).Resize(15, 4).Value = Worksheets("List1").Cells(9, 1).Resize(15, 4).Value 'položky
Exit Sub
Else
Pocitadlo = Pocitadlo + 5
End If
Loop
End Sub
Ak nevyhovuje naťahovanie vzorcov, tak použite jednoduché makro, ktoré zmaže staré, rozkopíruje nové hodnoty a naformátuje:
Sub Rozkopiruj()
Dim R As Long, RV As Long, S As Byte, D(), V(), i As Long, x As Byte, Poz As Long, Hlava As Range
With Worksheets("Hárok1")
S = 5
R = .Cells(Rows.Count, 1).End(xlUp).Row
D = .Cells(1, 1).Resize(R, S).Value
End With
Application.ScreenUpdating = False
With Worksheets("Hárok2")
.UsedRange.Clear
RV = R * (S + 1)
ReDim V(1 To RV, 1 To 1)
For i = 1 To R
Poz = Poz + 1
V(Poz, 1) = "Rovnaká hlavička"
If Hlava Is Nothing Then Set Hlava = .Cells(Poz, 1) Else Set Hlava = Union(Hlava, .Cells(Poz, 1))
For x = 1 To S
Poz = Poz + 1
V(Poz, 1) = D(i, x)
Next x
Next i
With .Cells(1, 1).Resize(RV)
.Value = V
.HorizontalAlignment = xlLeft
End With
.Activate
End With
With Hlava
.Interior.Color = 16576511
.Font.Bold = True
.Font.Italic = True
.Font.Size = 14
.HorizontalAlignment = xlCenter
End With
Application.ScreenUpdating = True
End Sub
Zatiaľ bez kontroly existencie adresára, predošlého súboru s rovnakým názvom, bez odchytu chyby pri uložení, a so zatvorením na konci. Je potrebné aby bol nový tiež XLSM?
Private Sub CommandButton1_Click()
Dim Jmeno As String, Cesta As String
Cesta = "C:\pokus\"
Jmeno = "sample_" & Worksheets("faktura").Range("A1").Value & ".xlsm"
Application.ScreenUpdating = False
Worksheets(Array("faktura", "doprava")).Copy
ActiveWorkbook.SaveAs Filename:=Cesta & Jmeno, FileFormat:=xlOpenXMLWorkbookMacroEnabled
ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub
EDIT: Odstránil som jedno ".xlsm" z názvu súboru, bolo tam omylom 2x :)
O chĺpok kratší ...
Skúsim 2 možnosti...
Ťahať hodnoty nieje problém, ten vidím v kopírovaní tej hlavičky (písmo, veľkosť, rez, farba, pozadie). To som si inak asi nikdy nevšimol, že mi nejde nastaviť veľkosť písma cez PF. Rovnako mi nejde zároveň Bold aj Italic
Použite 2x LOOKUP. Alebo sa dá jednoducho maticou pomocou INDEX a LARGE. Chcete aj to ?
Ja nehovorím o kopírovaní v zmysle duševného vlastníctva, ale o technike práce s dátami ako takými
Na tom akým spôsobom pracujete s tými "dátami" veľmi záleží. Ak dostanete odkaz na nejaké stránky, kde je tabuľka, tak to treba riešiť importom cez Data z Webu, je to funkcia Excelu, a PowerQuery. Ak dostanete nejaký súbor TXT, CSV, HTML a pod, je to asi práca pre PowerQuery.
Tu máte príklad, ak sú kódy v bunkách. To som mal na mysli tým kopírovaním, že ako sa dostanú tie kódy do buniek. Ak totiž platí niečo vyššie napísané, nemusí sa nič do buniek kopírovať, ale len sa urobí PQ dotaz na súbory s kódmi alebo na web s tabuľkou. Už mi rozumiete?
Tento príklad počíta aj s rozličným počtom stĺpcov či riadkov, ale kód musí obsahovať správne tabuľkové tagy. To čo je pred 1. tagom je iba v 1. riadku výsledku daného kódu. Tak isto aj to čo je za posledným tagom je iba v 1. riadku výsledku pre daný kód. Počet stĺpcov medzi nimi je relatívny podľa potreby. Ono sú to totiž viacriadkové tabuľky.
V tomto prípade teda nasekáte kódy do vstupu, a na karte Výsledok dáte Obnoviť Tabuľku, buď cez pravý klik, alebo v menu Údaje - Obnoviť.
Samozrejme sa to dá riešiť aj makrom. Ja som toto PQ iba pozliepal, sú tu na to väčší maníci.
Čo znamená "HTML kód" ? Teda sú tam Tagy "<xyz>"TEXT"</xyz>"? A Vy chcete ten TEXT? V HTML kóde zo stránky sú aj rôzne scripty, binárne dáta, ... Treba uviesť prílohu s príkladom.
A nedá sa tá stránka odkiaľ to kopčíte, loadnúť rovno v Exceli cez Data z Webu?
...
Vy nič na liste DATA neupravujete. Vložíte tam tie data z Exportu. Od prvej dátovej bunky. Ako ste ich tam vkladali doteraz?
Tu by bodlo, ak by sa dali tie data načítať rovno do PowerQuery. Tam by stačilo iba Obnoviť, a je to. My ale nemáme prístup na Váš zdroj dát.
Počet položiek na faktúre. No urobil som Vám tam filter, kde sa odfiltrujú nepoužité riadky. Je to na max 24 dátových riadkov (položiek). Ak ich bude viac, tak to je problém, lebo potom už asi treba makro, ktoré to rozhodí na viac rovnakých strán...
Takže vložíte aktuálne dáta do DATA (nič iné tam nemeníte).
Teraz vyberiete na liste FAKTURA faktúru. Položky sa načítajú samé. Vy dáte iba na karte "Údaje" v skupine "Zoradiť a filtrovať" tlačítko "Znovu použiť". A je to.
Ktorý stĺpec sú jednotky ?
Ktorý je Celkem ?
Prečo tam sú sumy ako text ? spolu s prídomkom " Kč" ? Ak to tak dáva systém, treba odstrániť vzorcom to " Kč" a počítať iba s číslom v Celkem.
Môžu tam byť aj iné meny ako Kč ?
Matice vôbec netreba, rýchlejšie bude takto si nechať počítať jedinečné faktúry, jedinečné neodoslané, aj samotné materiály na faktúre, v pomocných stĺpcoch danej Tabuľky. Odpadá starosť o dostatočné nadimenzovanie matice.
Čo ak bude viac materiálov ako je riadkov vo fakturačnom "formulári" ?
"Datum vystavení:", splatnosti a plnění - tam asi nemá byť TODAY/DNES, či ?
...
Nejaký ten príklad, nedokončený.
Tento je o chlp kratší, vynechal som MATCH/POZVYHLEDAT, spolieham na to, že idú dni po sebe a nevynechajú sa. Na karte Vzorce dajte Vyhodnotiť vzorec, a krokujte, kedy Vám dá chybu #ODKAZ.
A čo Vám konkrétne nefunguje? Otvoríte môj súbor, a v ňom je #ODKAZ ? Ak, tak v ktorej bunke ? Alebo pri implementácii do Vašeho súboru ?
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.