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

#1 Re: Calc » Změna názvu tlačítka makrem - VYŘEŠENO » 21. 3. 2018 13:33:51

Makro funguje.

Máte pravdu, skrývá a odkrývá mi to řádky, ale to už mám hotové. Potřeboval jsem jen změnu toho tlačítka.

Jen dotaz k vašemu kódu.

Proč to máte přes ... "for i".....

Mělo by to fungovat i bez procházení?

Každopádně mockrát díky za pomoc.

neutr napsal(a)

Takto nevidím jak jste makro upravil. Posílám raději originál makra v sešitě. Přejmenování tlačítka

#2 Re: Calc » Změna názvu tlačítka makrem - VYŘEŠENO » 21. 3. 2018 12:47:50

V excelu s tím nemám problém, bohužel v LibreOffice Cal to nejde.

(sestava: Verze: 5.2.4.2 (x64)
ID sestavení: 3d5603e1122f0f102b62521720ab13a38a4e0eb0
Vlákna CPU: 4; Verze OS: Windows 6.1; Vykreslování UI: výchozí;
Národní prostředí: cs-CZ (cs_CZ); Calc: CL)



Posílám screen.

Po zmáčknutí tlačítka "Ukaž smeny" se spustí makro a po ukončení makra potřebuji, aby se na tlačítku objevilo "skryj smeny"
Jedná se o jeden list.

screen.png

#3 Re: Calc » Změna názvu tlačítka makrem - VYŘEŠENO » 21. 3. 2018 09:40:51

Nejedná si přímo o ovládací prvek z lišty.

Makro chci , aby mi fungovalo v LibreOffice calc.

Mám vytvořené makro, které spouštím tlačítkem a na tlačítku je text. Při spuštění makra potřebuji, aby se mi  změnil text na tomto tlačítku.
děkuji


neutr napsal(a)

A - Ono by to mělo jít pokud přidáte zaklínadlo před makro VBA Support 1.
B - Na tomto fóru ale neučíme MSO potažmo VB a VBA - to si nejděte na jiném fóru.


     Podle dotazu máte opravdu zájem o programování v Libre Office, nebo Apache OpenOffice a nikoliv ve VB (VBA). Přejmenování a dokonce přetypování tlačítka samozřejmě existuje. Jenže Vy to chcete pro makro které je zřejmě VB, nebo VBA.
     V každám případě tlačítko má něco udělat a při tom se přejmenovat. Pochybuji, že by takto kompilovaný kód (StarBasic a VB) mohl fungovat bez problémů. Nicméně jednoduché věci asi ano.


     S ovládacími prvky je také možné zacházet přímo volbou z IDE. To je ale na menší manuálek. Mám 2 typy maker pro podobné účely. Flying Button a skrývání tlačítek. Takže ve druhém případě obě existují, jen se střídavě skrývají.
     První případ je specifický tím, že se umístí podle kurzoru a nastaví se mu parametry podobně jak to požadujete. Zde je možné vždy smazat a vytvořit nové, nebo jen jednoduše přepsat. Takže upřesněte co by Vám vyhovovalo více.

#4 Calc » Změna názvu tlačítka makrem - VYŘEŠENO » 21. 3. 2018 07:47:53

gunmant
Odpovědí: 8

Ahoj,
jakým příkazem můžu makrem přejmenovat tlačítko v Calc, které jsem si vytvořil?
V excelu vba je to:

ActiveSheet.Shapes("Button 1").Select
    Selection.Characters.Text = "Zobrazit"

V Calc toto nefunguje.

Děkuji

#6 Re: Calc » Zeštíhlení makra do Calc - VYŘEŠENÝ » 21. 1. 2017 11:16:17

KONEČNÝ KÓD

Sub Main_1
Dim sVar as object
nasel = dlg.model.d_por.text
For i = 0 To 3
Select Case i
Case 0
svar = dlg.model.d_01
Case 1
svar = dlg.model.d_02
Case 2
svar = dlg.model.d_03
Case 3
svar = dlg.model.d_04
End select
        oSheet = ThisComponent.Sheets.getByIndex(i)
    oCel = oSheet.getCellByPosition(18,6)
    oCel.formula = "=VLOOKUP(""" & nasel & """;A34:O270;15;0)"
    sVar.value = oSheet.getCellRangeByName("S7").value
Next i
End Sub 

#7 Re: Calc » Zeštíhlení makra do Calc - VYŘEŠENÝ » 21. 1. 2017 11:02:00

Tak po spuštění mi to napíše, že vlastnost nebo metoda getByPosition nenalezena.

neutr napsal(a)

nebo otestujte tohle řešení - to by se hodilo když by názvy byly špatně upravitelné -

Sub Main_1
Dim sVar as string
nasel = dlg.model.d_por.text
For i = 0 To 3
Select Case i
Case 0
svar = dlg.model.d_01
Case 1
svar = dlg.model.d_02
Case 2
svar = dlg.model.d_03
Case 3
svar = dlg.model.d_04
End select
        oSheet = ThisComponent.Sheets.getByPosition(i)
    oCel = oSheet.getCellByPosition(18,6)
    oCel.formula = "=VLOOKUP(""" & nasel & """;A34:O270;15;0)"
    sVar.value = list1.getCellRangeByName("S7").value
Next i
End Sub

PS : když by to nechtělo chodit tak to bude deklarací sVar. Pak by to chtělo
Místo Dim svar as string - as object

#8 Re: Calc » Zeštíhlení makra do Calc - VYŘEŠENÝ » 20. 1. 2017 14:05:59

Ano pomoci cyklu by to šlo, ale, už se mi v tomto cyklu nezmění dlg.model.d_01.value na 02..03.. a v tom mám ten problém, že nevím jestli cyklem jde i toto nějak změnit.


neutr napsal(a)

To se dělá pomocí cyklu. Netestoval jsem to ale pokud Vám to chodilo, bude tohle chodit také :

Sub Main
nasel = dlg.model.d_por.text
For i = 0 To 3
        oSheet = ThisComponent.Sheets.getByPosition(i)
    oCel = oSheet.getCellByPosition(18,6)
    oCel.formula = "=VLOOKUP(""" & nasel & """;A34:O270;15;0)"
    dlg.model.d_01.value = list1.getCellRangeByName("S7").value
Next i
End Sub

#9 Calc » Zeštíhlení makra do Calc - VYŘEŠENÝ » 20. 1. 2017 13:37:33

gunmant
Odpovědí: 8

Dobrý den.
Dá se nějak kód viz níže upravit jinak, aby jsem nemusel 4x provádět to samé.
Jediné co se mi vždy mění je list (1,2,3,4) a dlg.model.d_01.value (d_01,d_02,d_03d,_04).
oCel.formula taky nemusí být zapsaná do buňky, je to jen pro vyhledání do proměnné.

Děkuji za radu.


    nasel = dlg.model.d_por.text
        oSheet = ThisComponent.Sheets.getByName("List1")
    oCel = oSheet.getCellByPosition(18,6)
    oCel.formula = "=VLOOKUP(""" & nasel & """;A34:O270;15;0)"
    dlg.model.d_01.value = list1.getCellRangeByName("S7").value
       
    oSheet = ThisComponent.Sheets.getByName("List2")
    oCel = oSheet.getCellByPosition(18,6)
    oCel.formula = "=VLOOKUP(""" & nasel & """;A34:O270;15;0)"
    dlg.model.d_02.value = list2.getCellRangeByName("S7").value
       
    oSheet = ThisComponent.Sheets.getByName("List3")
    oCel = oSheet.getCellByPosition(18,6)
    oCel.formula = "=VLOOKUP(""" & nasel & """;A34:O270;15;0)"
    dlg.model.d_03.value = list3.getCellRangeByName("S7").value
       
    oSheet = ThisComponent.Sheets.getByName("List4")
    oCel = oSheet.getCellByPosition(18,6)
    oCel.formula = "=VLOOKUP(""" & nasel & """;A34:O270;15;0)"
    dlg.model.d_04.value = list4.getCellRangeByName("S7").value

Zápatí

Používáme FluxBB