< návrat zpět

MS Excel


Téma: Export prostý text a struktura souboru rss

Zaslal/a 27.8.2015 8:50

AlfanDobrý den,
banka po nás chce pohledávky (POS) v určitém formátu a struktuře.
Já vyexportuji v excelu POS (viz list "matrice").
A na listu "export" jsem se pokusil pomocí vzorců docílit požadované struktury (viz *.pdf v příloze).
Nicméně si nedokážu poradit s kontrolou počtu znaků u IČO a případně doplnit chybějící znaky mezerami tak, jak chce banka a hlavně nedokáži docílit formátu té částky tak, jak to požaduje banka.
Nikdy nevím, kolik budu mít řádků POS, ale to by asi nebyl problém protáhnout vzorce.
Pokud by se mi podařilo dostat data do požadovaného formátu, tak bych je už jen potřeboval vyexportovat bez záhlaví sloupců ve formátu prostého textu tak, jak to chce banka.
Mohl byste mi někdo prosím poradit?
Děkuji

Příloha: rar26450_pos-rb-wall.rar (63kB, staženo 28x)
Zaslat odpověď >

Strana:  1 2 3   další »
icon #026451
eLCHa
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 Newcitovat
icon #026452
eLCHa
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 .citovat
#026453
Alfan
Kód by se mi určitě hodil, ale to nezvládnu.
Každopádně děkuji.
Vyzkouším to a zeptám se v bance co oni na to.

Tady
=matrice!F3&OPAKOVAT(" ";24-DÉLKA(matrice!F3))
pokud je 25 znaků a více to hlásí #HODNOTAcitovat
icon #026454
eLCHa
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
citovat
#026455
Alfan
Vzorce teď fungují super.

Makro perfekt, akorát bych potřeboval export bez toho záhlaví řádků respektive prvního řádku, ale to mohu vyřešit tím, že nebudu mít na tom listu první řádek s názvem sloupců 1

Uložení si přenastavím.

Šlo by do toho makra dodělat, aby se to zeptalo, kam chci uložit a s jakým názvem? Přípona txt by zůstala.

Kdyby se podařil kód, který by automaticky z listu "matrice" na listu export připravil data v požadované struktuře tak by to bylo super. Ale i ty vzorce jsou perfektní.

Ještě jednou děkuji 1citovat
icon #026456
eLCHa
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.citovat
#026457
Alfan
Jj, jsem lama 5
Omlouvám se za komplikace.
Podle mě to funguje korektně.
Připravím a pošlu do banky a uvidíme.

Ještě jednou díky 1citovat
icon #026458
eLCHa
Aktualizoval jsem kód - máte tam ten dotaz na umístění. Defaultní název souboru (InitialFilename) si dejte, jaký potřebujete.citovat
#026461
Alfan
Jj, už to nabízí možnost uložení.

Akorát, když se to otevře, tak jsou uloženy i první dva řádky. To jsem v minulé verzi přehlédl.
V prvním řádku jsou popisy sloupců a druhý řádek je prázdný.
Já potřebuji uložit tedy data až od 3. řádku dále. A nepřišel jsem na to, kde to mám přenastavit 4

A tady byla má být 5 místo 1
s5 = Replace(Format(rRow.Cells(1).Value, "000000000.00"), ",", ".")

ale to jsem si upravil

Děkuji 1citovat
#026486
Alfan
Zkoušel jsem upravit ten kód, aby se mi exportovala data až od třetího řádku.
Nakonec jsem metodou pokus a omyl tady
Print #iFile, Mid$(sPrint, 137, Len(sPrint) - 2)
změnil 1 na 137 a už se to tak exportuje.
Akorát na konci je vždy ještě jeden nový připravený řádek.
Já jsem původně dal číslo 132, protože počet znaků v jednom řádku v exportovaném souboru je vždy 66 a nechtěl jsem dva řádky a proto jsem zkoušel těch 132.
Nicméně je to 137 a nevím proč těch pět navíc... 1
Určitě by to šlo vyřešit i jinak.citovat

Strana:  1 2 3   další »

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