Pokud chceš od někoho radu, měl by si poskytnout informace. Nejlépe ve formě sešitu, kde bude vidět struktura dat.
Protože informace z této věty:
Range("A2:E11").Select - E11 bych potřeboval nahradit poslední buňkou, kde jsou na listu vyplněná nějaká data.
Můžou být dost zavádějící ...
Budu předpokládat, že na prvním řádku je záhlaví tabulky.
V tom případě může kód vypadat takto:
Sub test()
Dim SHL As Worksheet, SHT As Worksheet
Dim radek As Long, sloupec As Integer
Dim oblast As Range
Set SHL = Sheets("limito")
Set SHT = Sheets("přehled tankování")
With SHL.UsedRange
radek = .Rows.Count
sloupec = .Columns.Count
Set oblast = .Range(.Cells(2, 1), .Cells(radek, sloupec))
End With
oblast.Copy SHT.Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1)
End Sub
Důrazně doporučuji testovat kód na kopii souboru !!!
Tady je ještě upravený soubor, který si složky pro uložení vytvoří sám, pokud neexistují. Změna je i v listu - přidán sloupec pro podadresář první úrovně. Pro správnou funkci je potřeba dodržet zápis s lomítky.
Pokud tedy není potřeba kódem vytvářet složky, tak by to mohlo vypadat takto:
Jen taková poznámka, nový sešit bych nevytvářel na začátku makra, ale na jeho konci. Data z listu Podklady přenést do listu Vzor bez neustálého přepínání oken. Takto vyplněný list poté uložit a vzorový list poté vyčistit.
Edit:
Přikládám soubor s pročištěným kódem. Zatím bez cyklu.
A co vlastní funkce?
https://www.youtube.com/watch?v=WdNzWUcYKyI
Vůbec sem neřešil to funkci makra, jen odemknutí a opětovné zamčení aktivního listu.
Řešení je jednoduché, na začátku makra sešit odemkni a na konci zase zamkni.
Má to ale jeden zádrhel. Do kódu budeš muset zapsat heslo pro uzamknutí listu, které se dá poté jednoduše vyčíst, když se Ti někdo dostane do kódu (i když bude projekt zaheslován!!!).
A co prostě a jednoduše na začátku makra ten filtr zrušit?
List1.ShowAllData
JirkaM napsal/a:
To by asi šlo, ale ještě k tomu potřebuju přidat, aby se ty hodnoty braly z buňky, kam se mi ta velikost zadá automaticky. Příklad: Mám celkovou velikost výrobku třeba 1000x100, tu si zadám jako hlavní atribut a v tabulce mi to vypíše údaje jako váha, obvod, plocha a já z toho obvodu chci získat čas výroby
Pomocná tabulka a funkce SVYHLEDAT.
Tak si tu textovou hodnotu ve vzorci vynásob jedničkou.
Něco v rychlosti. Moc sem to netestovat na případné chyby. Otestuj a případně dej vědět.
Edit 14:12 úprava souboru v příloze
Nástřel možného řešení
Ahoj, zkusil sem porovnání duplicit pomocí polí.
V souboru je přidán druhý modul s makrem Kontrola. Info o průběhu se zobrazuje ve stavovém řádku.
Dobrá zkusím to znovu. Řešení od marjankaj je lepší - nepotřebuje mít povolená makra.
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
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.