Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  67 68 69 70 71 72 73 74 75   další » ... 140

Aha - já to už nezkouším, jen tipuju ;)

Tak tam určitě nechte to -2.
Pokud Vám to někdo nevyřeší, tak na to kouknu příští týden.
Print prostě vkládá svůj konec řádku.

Pokud vadí ten další řádek, tak nahraďtePrint #iFile, Mid$(sPrint, 1, Len(sPrint) - 2)zaPrint #iFile, Mid$(sPrint, 1, Len(sPrint) - 4)

Tak to vraťte zase zpátky ;))

Pokud Vám to načítá i první 2 řádky, pak ten druhý řádek není prázdný (je to jinak než v příloze)
Zkuste nahraditFor Each rRow In Cells(3, 1).CurrentRegion.RowszaFor Each rRow In Range(Cells(3, 1), Cells(Rows.Count, 6).End(xlUp)).RowsTa 6 znamená počet sloupců.

Další možnost, která mne v rychlosti napadá je využití SQL - pojmenujte oblast a tu pak načtete. Nechce se mi zkoušet. Zkuste pohledat - možná je něco i tady http://wall.cz/index.php?m=topic&id=22223&page=5

Ono je to všechno jenom takové teoretikování... Teď to dělám tak, jednou určitě budu dělat tak...

Nemusíte vytvářet propojení na x souborů a všechny je aktualizovat.
Například můžete ta data načíst "jedním krokem" při spuštění formuláře - do skrytého listu vložíte odkazyRange("A1:A50").FormulaR1C1 = "='Cesta\[Nazev]List'!R[10]C15"Tímto jsem celkem rychle načetl 50 řádků zavřeného souboru - bez cyklu. Po načtení dat do formuláře mohu vzorce zase smazat a pak mne to nebude brzdit při spouštění.

Mno - načítáte data ze zavřeného souboru a navíc po jednom. To zákonitě musí být pomalé.
Pokud bych něco takového řešil, tak bych asi do sešitu vložil skrytý list, který by ta data načetl (pomocí odkazů) a z tohoto listu čerpal data pro listbox.

Asi takhle - problémů je hodně.

Stačí vypnout EnableEvents. Tzn., že v takový projekt je třeba dobře ošetřit nebo se pokud možno vyhnout Application.EnableEvents=False.
Pokud to uživatel vypne ručně, nenaděláte s tím asi nic.

Dále např. špatné uzavření (pád aplikace) => opravený nebo obnovený sešit - to už mi taky nadělalo pár komplikací.

Nejjednodušší je asi popsané řešení a pravidelná záloha.

L52 je poslední buňka v listu (myšleno sloupce K:XFD a řádky 53:1048576 se nepoužívají)?
Pokud ano, tak
označte sloupce K:XFD a dejte odstranit
označte řádky 53:1048576 a dejte odstranit
uložte soubor

nyní, když stisknete CTRL+END skočíte na L52.

Aktualizoval jsem kód - máte tam ten dotaz na umístění. Defaultní název souboru (InitialFilename) si dejte, jaký potřebujete.

Ten kód nespouštějte na listu export, ale na listu matrice. Žádný list export není potřeba.
Funguje podle přílohy, tzn data začínají na řádku 3 a nad nimi je prázdný řádek. Pokud to vypadá jinak, pošlete originální vzhled.

Píšu rovnou tady, takže bez testování - vyzkoušejte=KDYŽ(DÉLKA(matrice!F3)>24;matrice!F3;matrice!F3&OPAKOVAT(" ";24-DÉLKA(matrice!F3)))
Mám čas a tak jsem si hrálSub subExport2Text()
Dim s1 As String * 8, s2 As String * 10, s3 As String * 6, s4 As String * 6, s5 As String * 12, s6 As String * 24
Dim sPrint As String

Dim rRow As Range
For Each rRow In Cells(3, 1).CurrentRegion.Rows
s1 = rRow.Cells(1).Value
s2 = rRow.Cells(2).Value
s3 = Format(rRow.Cells(3).Value, "ddmmyy")
s4 = Format(rRow.Cells(4).Value, "ddmmyy")
s5 = Replace(Format(rRow.Cells(1).Value, "000000000.00"), ",", ".")
s6 = rRow.Cells(6).Value

sPrint = sPrint & s1 & s2 & s3 & s4 & s5 & s6 & vbNewLine
Next rRow
Set rRow = Nothing

Dim sFile As String
sFile = Application.GetSaveAsFilename(InitialFileName:=Format(Date, "yy-mm-dd ") & "NazevSouboru.txt", FileFilter:="Textové soubory (*.txt), *.txt")
If Not sFile = "False" Then
Dim iFile As Byte
iFile = FreeFile
Open sFile For Output As #iFile
Print #iFile, Mid$(sPrint, 1, Len(sPrint) - 2)
Close #iFile

Shell "Notepad.exe" & " " & sFile, 1
Else
MsgBox "Zrušeno uživatelem."
End If
End Sub

Pro export bude stačit vzorce zřetězit pomocí & do jednoho sloupce a poté uložit jako text.
Záleží jak často to budete dělat. Počítám, že se tu někdo objeví s kódem. Pokud byste chtěl kód, tak bych to neřešil pomocným listem, ale rovnou uložil v txt v požadovaném tvaru .

Jestli rozumím, tak=matrice!A3&OPAKOVAT(" ";8-DÉLKA(matrice!A3))=matrice!B3&OPAKOVAT(" ";10-DÉLKA(matrice!B3))=HODNOTA.NA.TEXT(matrice!C3;"ddmmrr")=HODNOTA.NA.TEXT(matrice!D3;"ddmmrr")=DOSADIT(HODNOTA.NA.TEXT(matrice!E3;"000000000,00");",";".")=matrice!F3&OPAKOVAT(" ";24-DÉLKA(matrice!F3))
Všude nastavte obecný formát.
Abyste to správně viděl, použijte například Courier New

@marjankaj
Řekl bych, že to souvisí s tím, že v našem a ve slovenském prostředí je čárka používána jako oddělovač desetinných míst a proto ji nelze použít jako oddělovač argumentů. Takže máte štěstí, že nemáte přeložené názvy funkcí, nicméně stejně nemůžete pouze zkopírovat anglický vzorec.
Souvislost s nastavením Windows bych tam neviděl - ale toto je pouze má domněnka - nikde jsem si to neověřoval, protože mně to až tak moc nezajímá.
Ve slovenské lokalizaci je tedy rozdíl mezi Formula - používá "," a FormulaLocal používá ";".
Proto je nám celkem k ničemu, když tady vložíte "slovenský vzorec", protože nejdříve musíme zaměnit středníky ;)

Aha, já myslel, že se jen divíte, že to nikdo nepoužívá. Nechtěl jsem zjišťovat, kdo to začal používat dříve... ;)


Strana:  1 ... « předchozí  67 68 69 70 71 72 73 74 75   další » ... 140

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