Programmacode invoeren (Calc)

ldk
Berichten: 73
Lid geworden op: di aug 25, 2009 5:27 pm

Programmacode invoeren (Calc)

Bericht door ldk »

In MS Excel een proefje gemaakt met een knop op een werkblad die een bepaalde opdracht uitvoert bij aanklikken.
Bestand gekopieerd naar OOo Calc en daar werkt het ook, maar hoe kom ik nu bij de code achter deze knop?

Code in Excel:
Private Sub Cmd-Click()
Worksheets("Rooster").Range ("M12") = " "
Dus cel M12 wordt leeg gemaakt op het werkblad Rooster.

Hoe vertaal ik dit naar OOo Calc en bewerk ik deze code?

Ldk
OpenOffice 3.2.1 op Windows XP
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Programmacode invoeren

Bericht door RPG »

Hallo

Ik begrijp dat je graag de starbasic wilt gaan leren. Het boek waar ik het een en ander uit geleerd heb staat al sinds op het internet.
http://wiki.services.openoffice.org/wik ... ASIC_Guide
ook
http://www.pitonyak.org/oo.php

Van programmeren in een spreadsheet weet ik niet zoveel tot niets. Ik houd me wat meer bezig met database.

Ik weet niet of het verstandig is om je erg te verdiepen in programmeren daar de meeste eenvoudige code wel te vinden zijn.

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
Johan
Berichten: 496
Lid geworden op: di jun 02, 2009 11:53 pm

Re: Programmacode invoeren

Bericht door Johan »

Onder Extra in het menu van Calc kan u kiezen om een macro op te nemen. U neemt deze op terwijl u gaat naar het werkblad "Rooster" en daar de inhoud van Cel M12 wist. U stopt dan de opname en u kiest er voor om deze op te nemen in het geopende document. U kan dan zelf de naam kiezen voor deze macro. Vervolgens klikt u rechts op de bestaande knop en verbindt er de net aangemaakte macro aan. Met een beetje experimenteren, geraakt u er wel. :geek: Een voorbeeld van zo'n macro code:

Code: Selecteer alles

sub Zelfgekozen naam
dim document   as object
dim dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Nr"
args1(0).Value = 1
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1())
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$M$12"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Flags"
args3(0).Value = "A"
dispatcher.executeDispatch(document, ".uno:Delete", "", 0, args3())
end sub
Deze zal mogelijks niet werken in uw document. Maar het staat u vrij om het te proberen. 8-)
ldk
Berichten: 73
Lid geworden op: di aug 25, 2009 5:27 pm

Re: Programmacode invoeren

Bericht door ldk »

Hallo Johan,
Inderdaad zo gaat het ook. Soms denkt een mens wel eens te ingewikkeld. 'kBen nu aan het proberen om met de zelfde macro op een ander blad een getal te verhogen met 1. Dit lukt nog niet, maar ik blijf het proberen.

Ldk
OpenOffice 3.2.1 op Windows XP
Plaats reactie