Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 2. 3. 2022 21:10:26

tanner5
Člen
Registrace: 18. 4. 2020
Příspěvků: 52

Text do " Vyřešeno"

Zdravím,
to bych nebyl já, abych zase něco nepotřeboval big_smile
Spíše mám dotaz.... lze nějak nahradit filtr - text do sloupců za pomoci makra?
Jde o toto... Dialogové okno - zadá se jméno a příjmení ...
A potřeboval bych toto uložit do sešitu ale příjmení do jedné a jméno do druhé ( a v případě rodného jména do 3 buňky)
smile nějak nevím kudy a jak na to.
Našlo by se nakopnutí nebo rada?
Předem děkuji

Editoval tanner5 (13. 3. 2022 02:53:45)

Offline

#2 3. 3. 2022 07:27:08

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 711

Re: Text do " Vyřešeno"

Řeší se to pomocí funkce Split, různá řešení jsou již zde: https://forum.openoffice.org/en/forum/v … =9&t=33218.
Jednotlivá slova dostanete do matice a můžete je vložit kam potřebujete


LibreOffice 5.4.

Offline

#3 3. 3. 2022 12:52:34

tanner5
Člen
Registrace: 18. 4. 2020
Příspěvků: 52

Re: Text do " Vyřešeno"

Superrr, to je přesně co potřebuji smile Děkuji

Offline

#4 5. 3. 2022 08:09:18

tanner5
Člen
Registrace: 18. 4. 2020
Příspěvků: 52

Re: Text do " Vyřešeno"

Tak, a narazil jsem na zádrhel sad

Jde o to, že funkce Split mi jde, ale mám problém, neboť ve slopci mám někdy 2, někdy 3 slova, oddělená mezerou a teď nevím jak definovat Split aby neházel chybu sad
Napadlo mne, spočítat počet mezer a ty pak definovat ve výpisu Splitu ale nějak netuším jak na to... napadlo mne Trim nebo len ale teď jsem trochu ztracený.... zkoušel jsem v calcu a hlasí mi to jiný počet než by mělo, tak teď nevím kde dělám chybu smile

Offline

#5 5. 3. 2022 12:05:00

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 711

Re: Text do " Vyřešeno"

mě připadne že v tom fóru je to pěkně popsané, co přesně máte za problém? Zjištění počtu prvků matice se provádí příkaze lbound() a ubound(), tím eleiminujete případné "přetečení" pole.

sub test
   dim s1()
   s1 = SpaceSplit("ab      cd   ef       jkl")'řetězec může mít libovolný počet slov odělený libovolným počtem mezer, výsledek budou vždy jednotlivá slova v proměnné s1()
   for i = 0 to ubound(s1)
   	print s1(i)
   next i   
end sub


Function SpaceSplit(p1 as String) as Array
  Dim i as Integer, j as Integer, a1()
  a1=Split(Trim(p1)," ")
  Dim a2(Ubound(a1))
  For i = 0 to Ubound(a1)
    If a1(i)<>"" Then
       a2(j)=a1(i)
       j = j+1
    End If
  Next
  Redim Preserve a2(j-1)
  SpaceSplit = a2
End Function

Editoval ludviktrnka (5. 3. 2022 16:14:45)


LibreOffice 5.4.

Offline

#6 5. 3. 2022 21:58:40

tanner5
Člen
Registrace: 18. 4. 2020
Příspěvků: 52

Re: Text do " Vyřešeno"

Máte pravdu, akorát já jsem trubka a špatně jsem si nadefinoval načítání z dialogového okna a proto mi to nešlo, upsal jsem se v definici proměné smile

Takže toto mi již funguje, řetezec to dělí super, akorát tedy dotaz , jak mám zapsat jednotlivá slova do ruzných buněk?

Předpokládám že promněná i je počítána od 0, takže v případě 3 slov by měla být 0,1,2.. takže pomocí toho by se asi dal defnovat sloupec, nebo na to jdu špatně?

Editoval tanner5 (5. 3. 2022 22:32:00)

Offline

#7 5. 3. 2022 23:59:55

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 711

Re: Text do " Vyřešeno"

Zkuste se podívat na základní výuku Basicu - https://www.openoffice.cz/doplnky/mala- … office-org . Pravděpodobně tam najdete odpovědi na všechny otázky.
Jinak vypsání do sloupce A např. takto:

sub test
   dim s1()
   s1 = SpaceSplit("Jean Paul  Belmondo")
'řetězec může mít libovolný počet slov odělený libovolným počtem mezer, 
'výsledek budou vždy jednotlivá slova v proměnné s1()
   
   dim doc as object
   dim oSheet as object
   
   doc = ThisComponent
   oSheet = doc.sheets(0)
   
   for i = 0 to ubound(s1)
   	oSheet.getCellByPosition(0, i + 1).String = s1(i)
        'doplnění slov do sloupce 0 tj. A, od řádku 1 tj. 2, tzn. 1. slovo do A2, dále A3 ...
   next i   
end sub

Editoval ludviktrnka (6. 3. 2022 00:03:55)


LibreOffice 5.4.

Offline

#8 6. 3. 2022 00:03:19

tanner5
Člen
Registrace: 18. 4. 2020
Příspěvků: 52

Re: Text do " Vyřešeno"

Tak nějak podle toho postupuji a snažím se, většinou jsem používal funkce v calcu, takže makro pro mně občas záhadné... no ale tady jaksi .... částečně jsem to měl dobře, ale patlal jsem string za s1() nooo... sad

Offline

Zápatí