Cos to Janku, cos to sněd ...
Za předpokladu, že není vynechaný řádek od G7 a jedná se pouze o čísla, stačí do nějaké buňky dát vzorec:
=INDEX(G7:G43;POČET(G7:G43))
Když se budou míchat čísla a text, jde to vylepšit:
=INDEX(G7:G43;POČET2(G7:G43))
Já to pochopil i bez ukázky, zkusím tedy svoje řešení. List s nabídkou se bude kopírovat celý, to umožní jakoukoliv nabídku upravit a uložit pod dalším číslem.
marjankaj: No jooo!
Co tohle?
Jenom úplně jednoduchá věc. Zvykl jsem si, když sepisuju kód, jakmile napíšu For i=1 To ...atd. hned zato si dám řádek Next i - a teprve potom dávám příkazy mezi to.
Zase chybka:) Tu kontrolu tam mám taky, jen jinak, tak už jen pro úplnost:
Zkusím tedy já.
Můj výzkum: kód k tlačítku je zapsán v listu. Tak mi přijde pochopitelné, že makrem nepřelezeš oblast toho listu. Asi.
Ale dá se samozřejmě zapsat na list2 takto:
Worksheets("List2").Range("A1") = "neco"
K tomu volání.. vytvoříš třeba makro "pokracuj" v modulu toho sešitu. Kód tlačítka pak bude:
Private Sub CommandButton1_Click()
Range("A1") = "zapis na ten samy list" ' nebo jine akce
pokracuj
End Sub
Modul:
Sub pokracuj()
Worksheets("List2").Select
Range("A2").Select ' aby tam byl ten Select
ActiveCell = "zapsano makrem Pokracuj"
End Sub
Celé to makro asi není důležité, stačí si vyzkoušet jen ty poslední 2 řádky na tlačíto. Jiný list aktivovat jde, ale buňka v něm už ne. Už jsem se s tím setkal, a protože ve vba zatím tápu, vzal jsem to jako vlastnost.
Dá se to obejít tak, že na další pokračování zavoláš "normální" makro umístěné v modulu a tam už si na listu2 můžeš aktivovat co chceš.
tady by mohla pomoct taková polo-automatizace. Ten název ve vedlejší buňce použít pro sestavení "textu" odkazu v dalším sloupci, nebo více sloupcích. Pak zkopírovat text do hlavní buňky s odkazem a doplnit =. Není to bůhvíco, ale vhodným způsobem vytváření toho textu se někdy uspoří hodně práce. Ve finále si přehodíš v celém sloupci vzorce pouhým Ctrl+c / ctrl+v a například záměnou ctrl+h znaku za =. Vyzkoušej v příloze, sešity do D:\dokumenty nebo si opravit cestu dle sebe.
Co nepřímý odkaz? Předpoklad: ty stránky jsem pochopil jako listy a že se jedná o čistý excel, ne vba. Pojmenování listů je v příkladu základní, když mají jiná jména, bude horší to nějak zautomatizovat pro nepř.odkaz. Ale šance je.
Ještě pokračování. Vyzkoušel jsem celek, funguje mi na 2010CZ. Tímto se omlouvám tvůrcům v testu stahovaných www, snad jim to nezahltí server.
Ten původní dotaz jsem posílal já. Od té doby jsem si trochu posunul level (v Excelu).
Předpokládám, že ten cyklus budeš chtít použít na nějaké vlastní www adresy.
Je důležité zjistit, ve kterém sloupci je "hlavní" obsah načtených dat.
Ten se může měnit podle toho, zda se importuje celá stránka nebo jen vybrané tabulky (označené šipkama v okně importu). Podle toho "hlavního sloupce" se pak dá určit poslední řádek pro vkládání dat pod sebe.
Dál je nutné v úseku With - End With zaměnit řádek .RefreshStyle tak, aby importovaná data šly pod sebe.
Já importuju kde co a často taky chci jen jednorázová data, bez uloženého webového dotazu. Dráždí mě pak, že Excel otravuje s možností aktualizace dat po načtení souboru. Pro to mám v cyklu řádek, kdy se právě uložený web dotaz smaže. Předpoklad je, že v sešitu nejsou žádné další web dotazy, které chceš ponechat. Pak se dá taky na řádek .Name dát cokoliv, třeba "aaaaa".
V kódu je tenhle řádek zapoznámkovaný - je to jen možnost, data budou importovaná na aktuální list (prázdný, jiný než UVOD - s tím se dá ještě taky pohrát, založit si nový, přejmenovat atd., to tam ale není).
Sub import_cyklus()
Dim i As Long, Sloupec As Long
Sloupec = 1 ' zde soucasne sl. na UVOD pro brani www adres a kontrolovaný sl. pro posl.radek
For i = 2 To Worksheets("UVOD").Cells(Rows.Count, Sloupec).End(xlUp).Row
adresa = "$A$" & Cells(Rows.Count, sloupec).End(xlUp).Row + 1
With ActiveSheet.QueryTables.Add(Connection:="URL;http://www.peloton.cz/soutez?tym=" _
& Worksheets("UVOD").Cells(i, Sloupec), Destination:=Range(adresa))
.Name = "soutez?tym=" & Worksheets("UVOD").Cells(i, Sloupec)
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertEntireRows
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage ' zde import cele stranky
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
' ActiveWorkbook.Connections(1).Delete
Next i
End Sub
Tento kód jsem ale netestoval, zkoušel jsem jen části a s jinou www.
Když se objeví to "opsaný obrázek atd." znamená to, že máš nevhodnou příponu přílohy. Chce to excel zazipovat.
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.