No ja som to robil podobne, ale trochu inak. Reaguje to aj na stlačenie políčka, čo v predošlom prípade nerobí.
Riadok 10 mi príde nezmyselný, ale ja zase nemôžem vedieť o čo tam ide. Ak treba od 10, dá sa to zmeniť.
List 2 som ešte nerobil.
Dajte vedieť.
Skúste pozrieť toto, či je to podľa predstáv:
Neskúšal som, iba z brucha
Sub subMarine()
With Workbooks.Open("C:\data.xls")
.Sheets("List1").Range("A1").Formula = "=1+1"
PosledniPlnyRadekListCelkem = .Sheets("ListCelkem").Range("A1").End(xlDown).Row
PrvniPrazdnyRadekListCelkem = PosledniPlnyRadekListCelkem + 1
PosledniPlnyRadekList2 = .Sheets("List2").Range("A1").End(xlDown).Row
PrvniPrazdnyRadekList2 = PosledniPlnyRadekList2 + 1
.Save
.Close
End With 'Workbooks.Open("C:\data.xls")
End Sub
Podľa mňa máte chybu :
PosledniPlnyRadek + 1
má byť asi
PosledniPlnyRadekListCelkem + 1
a neskôr má byť asi
PosledniPlnyRadekList2 + 1
A ještě jsem přemýšlel, jestli by nějak šlo otevřít v té složce všechny soubory, které obsahují text z té buňky(protože ty číselné názvy bude mít každý soubor jiný). Abych v buňce měl název "1000" a otevřelo mi to soubor, který bude začínat 1000_nazev_neco_neco.pdf ..
Paráda, funguje, problém bol v tej mriežke.
Ďakujem veľmi pekne.
Tommy968, a nemyslíte náhodou niečo takéto ?
Toto je matica, ale pôjde to asi aj cez FIND či SEARCH...
Zdravím Vás.
Mám prosbu. Vie niekto, čo robím zle, keď nemôžem sprevádzkovať žiadnu z metód Hypertextového odkazu na iný list, počítaného vzorcom =HYPERLINK(...) ?
Funguje, iba ak urobím manuálny Hyperlink cez pklik myši.
Fakt neviem, čo robím zle.
Všetky červené mi píšu chybu "Zadaný súbor sa nedá otvoriť".
Ďakujem.
Riešené napr. tu:
http://wall.cz/index.php?m=topic&id=25763
ďalší dotaz je na to už aj tu:
http://wall.cz/index.php?m=topic&id=25715
a ďalšie...
Využiteľnosť? No ľudia chcú mať "DB" v Exceli pre jeho relatívnu jednoduchosť, čo sa týka vkladania, úpravy, spracovania, výstupu a zrozumiteľnosti dát. Excel ale nieje DB. Na to je Access (a iné), ale to je zložitejšie. Ja som sa už s použitím Excelu ako "DB" stretol často, ale väčšinou v tom istom zošite.
Čítanie by nebol problém, ale zápis je už iná káva. Hovoríme stále o zatvorenom súbore.
@eLCHa: a nefungovalo by to aj bez pomocného stĺpca ?
=IF(B1-A1<0;"-";"")&TEXT(ABS(B1-A1);"h:mm")
@Michal83: ktorý že to používate súbor ? Dajte link.
No neviem, neviem, urobil som asi 20 zápisov, a začalo to byť pomalé :(.
Máte tam chybku, v druhom Application.DisplayAlerts = False, má byť True.
Aby Open okno nepreblikovalo treba ešte pridať Application.ScreenUpdating = False. Veľmi to spomaľuje zvolený druh výpočtu počtu riadkov. Nerieši sa tam ešte to ID. Treba ošetriť kliknutie na prvý riadok. Prenáša sa aj slovo "klik".
Takže asi by som to upravil takto:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim a(), r As Long
If Target.Row > 1 And Target.Column = 9 Then
With Application
.ScreenUpdating = False
On Error GoTo Chyba
Workbooks.Open ThisWorkbook.Path & "\obj.xlsx"
With Worksheets("objednavka")
a = ThisWorkbook.Worksheets("seznam").Rows(Target.Row).Resize(1, 8).Value
r = .Cells(Rows.Count, 1).End(xlUp).Row + 1
a(1, 1) = Format(r - 1, "000")
.Rows(r).Resize(1, 8).Value = a
End With
.DisplayAlerts = False
ActiveWorkbook.Close True
Chyba:
.DisplayAlerts = True
.ScreenUpdating = True
End With
End If
End Sub
Predpoklad je dúfam to, že PSČ je vždy 5 miestne číslo > 10000 a < 99999. Použil som maticovú metódu opajcnutú od eLCHa
=IFERROR(RIGHT(A1;LEN(A1)-5-MIN(IFERROR(FIND(ROW($A$10000:$A$99999);A1);LEN(A1))));"")
Ak tam bude ale obec bez ulíc, a zapísaná s číslom domu po názve obci, tak to bude oveľa zložitejšie (napr. 45678 Haluškovo 11).
Tak toto by so vedel urobiť asi jedine tak, ako som teraz postoval kolegovi vo vedľajšom vlákne:
http://wall.cz/index.php?m=topic&id=25763
Čo ja viem, tak by sa to malo dať urobiť cez ADO, cez RecordSet, to ale žiaľ neovládam. Pozrite sa na to, či by Vám niečo podobné vyhovovalo, a keď bude viac času, snáď Vám to spravím.
To by malo ísť cez ADO, to Vám ale ja urobiť neviem, takže jedno "krkolomnejšie riešenie" cez Excel.Application. Musí to byť globálna premenná, ktorá je stále inicializovaná, lebo ak by sa vytvárala pri každom kliku, program by bol rýchlostne nepoužiteľný. Takto tú 0,5 sekundy pretrpíte len raz pri otváraní zošitu. Upravil som Vám formát 1000 riadkov na taký aký ste mali v prvých 2 v príklade. Rovnako aj automatické podmienené formátovanie na farbu a orámovanie, a aj vzorec do posledného stĺpca, ktorý vloží text upozorňujúci na kliknutie.
Ako to funguje ?
-pri otvorení seznnam.xlsm, sa vytvorí ešte jedna virtuálna inštancia Excel, v ktorej sa otvorí objednavky.xlsx. Vy to nevidíte, ale to v pamäti otvorené. Teraz nieje problém prenášať údaje.
-ak počas otvoreného seznam.xlsm budete chcieť otvoriť aj objednavky.xlsx tak Vás to upozorní, že zošiť je otvorený a môžete ho otvoriť iba na čítanie.
-kliknutie na bunku, potom len skopíruje data, nemusí vytvárať ani rušiť tú inštanciu Excel, tá sa zruší pri zatvorení zošitu seznam.xlsm automaticky.
-súbor objednavky.xlsx sa ukladá priebežne po každom kliku.
-ak by normálna aplikácia Excel spadla, zostane v pamäti proces Excel.exe, ktorý bude treba zrušiť v Správcovi úloh.
Vyskúšajte, či Vám to bude vyhovovať a stačiť.
Viac neviem pomôcť.
Nič také som sice nikdy nepoužil, ale myslím, že tu je obrázkový návod,
http://www.howtogeek.com/162219/how-to-change-the-automatic-calculation-and-multi-threading-features-in-excel-2013/
No ja som to pochopil tak, že sa majú pridávať ďalšie a ďalšie na koniec druhého listu. A to by som urobil asi nejak takto:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim R As Long
With Worksheets("seznam")
R = .Cells(Rows.Count, 2).End(xlUp).Row - 1
If R > 0 Then
If Not Intersect(Target, .Cells(2, 9).Resize(R)) Is Nothing Then
With Worksheets("objednavky")
R = .Cells(Rows.Count, 1).End(xlUp).Row + 1
If R = 2 Then .Cells(R, 1) = "001" Else .Cells(R, 1) = Right("00" & CInt(.Cells(R - 1, 1) + 1), 3)
.Cells(R, 2).Resize(1, 7).Value = Worksheets("seznam").Cells(Target.Row, 2).Resize(1, 7).Value
End With
End If
End If
End With
End Sub
Doriešte si ešte formátovanie ďalších riadkov.
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.