Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: macro's in openoffice.org Calc  (gelezen 4660 keer)

Offline Arion

  • Lid
macro's in openoffice.org Calc
« Gepost op: 2009/12/02, 17:13:24 »
Ik deed mijn boekhouding met excel, onder gebruik van een aantal zelfgeschreven macro's. Die heb ik allemaal overgezet naar Basic van openoffice. Maar ik heb er nog een paar vragen over:
a) Waar, in welke vorm en wanneer precies worden de macro's opgeslagen? Ik heb b.v. vastgesteld dat bij een crash van Calc het werkblad wel tot op zekere hoogte kan worden hersteld, maar alle veranderingen van macro's zijn verloren.
b) hoe kan ik een koppeling maken naar een ander Spreadsheet? Concreet maak ik een Spreadsheet per kwartaal, en ik wil het saldo uit de vorige overnemen. De volgende manieren heb ik geprobeerd, zonder het gewenste resultaat te bereiken:
1. via Invoegen - Koppeling naar externe gegevens: Ik krijg een schermpje "Externe gegevens", kies via de browser-knop het bronbestand, klik op "Invoegen", in het volgende schermpje kies ik de naam van de cel met het saldo (die heb ik een naam gegeven), vervolgens "OK". Het schermpje gaat dicht, en verder gebeurt er helemaal niets.
2. via de Navigator: Ik kies onderaan het bronbestand (dat ik daarvoor heb geopend). Ik sleep de Celnaam naar de cel in het doelbestand. Daarvoor zijn er drie opties: 1. als hyperlink invoegen. Als ik dit doe, komt de link wel in de cel (en in de functiebalk) te staan, maar ik wil de celinhoud van de koppeling zien, niet het adres. 2. als koppeling invoegen. Als ik dit doe, wordt de formule uit het bronbestand gehaald, en niet de waarde. 3. als kopie invoegen: er gebeurt hetzelfde als onder 2.
3. met de functie DDE: Dit schijnt half te werken. Ik krijg in de cel het juiste bedrag te zien, alleen voorafgegaan door raadselachtige tekens: "€ 761,90", i.p.v. gewoon een euro-teken. Het bedrag wordt ook niet als zodanig herkend en dus ook niet verwerkt.
De versie van OpenOffice.org die ik gebruik is 2.4.1 (openoffice.org-core 1:2.4.1-1ubuntu2.2.
Wie kan mij helpen?

Re: macro's in openoffice.org Calc
« Reactie #1 Gepost op: 2009/12/02, 19:17:13 »
Macro's kan u opslaan in het rekenblad zelf, zodat deze worden mee verstuurd op het moment dat u u w rekenmap doormailt. Macro's kan u ook opslaan onder Mijn macro's. Dit zijn dan macro's die enkel u tot uwer beschikking heeft.

Simpel: U opent beide rekenmappen. In rekenmap 2 klikt u de cel aan waar u de uitkomst van rekenmap 1 wenst. U typt = en klikt de cel in rekenmap 1 aan.

Offline Arion

  • Lid
Re: macro's in openoffice.org Calc
« Reactie #2 Gepost op: 2009/12/03, 12:28:27 »
Bedankt, Pattattezak, voor de informatie. De koppeling kreeg ik op deze manier wel voor elkaar, maar toch wil ik nog doorvragen:
Over het opslaan van de macros: Volgens mij worden de macro's opgeslagen als ik Calc en "Mijn macro's en dialoogvensters" sluit, maar waar? Ik kan geen bestanden vinden met de namen die ik aan de modules heb gegeven. Ik zie wel een knop "Basic opslaan", maar die maakt een tekstbestand aan, die ik vervolgens niet vanuit BASIC kan openen.
Over de koppeling: Waarom werken de door mij beschreven manieren niet (Ik wil het graag helemaal begrijpen)?
Als ik hetzelfde wat ik in de formule zie staan na uw aanwijzingen te hebben gevolgd, handmatig invoer werkt het ook. Maar als ik een tikfout maak en Calc vindt een fout, dan worden alle hoofdletters in de formule in kleine letters veranderd: Heel irritant...
In de koppeling die ik nu heb gemaakt krijg ik een absolute verwijzing (b.v. C25), echter deze cel heeft ook een naam. Daar wil ik graag aan refereren, zodat bij een wijziging in rekenmap 1 (volgens uw telling) de correcte waard wordt overgenomen. Ik heb een aantal dingen geprobeerd, maar krijg dit niet voor elkaar.

Re: macro's in openoffice.org Calc
« Reactie #3 Gepost op: 2009/12/03, 16:58:06 »
Arion,
Ik maak slechts gebruik van office, ik heb het programma niet geschreven?

Als u uw macro opslaat in het rekenblad, heeft u toch ook maar één bestand? Ja, u kan dit bestand uitpakken in allemaal verschillende onderdelen die u kan openen met een webbladeraar. En ergens zal u misschien wel uw macroscript terug vinden. Zelf heb ik daar nog nooit op gezocht. De macro's die u opslaat in "Mijn macro's" zitten waarschijnlijk ergens in één gecomprimeerd bestand. Ter vergelijking: Evolution bewaard toch ook al uw mails in één versleuteld bestand?

Uw manieren van werken doen het niet omdat u zich wil baseren op een naam die eigen is aan de specifieke bronrekenmap? Als u een naam definieert in een rekenmap, is deze naam alleen geldig in de rekenmap waarin u deze heeft gedefinieerd? Op deze manier kan u dezelfde naam gebruiken in een andere rekenmap die op hetzelfde moment in gebruik is.

Die kleine letters wijzen u erop dat Calc uw gedefinieerde functie niet herkend. Dit is niet irritant, dit is slechts een ingebouwd hulpmiddel.

U zal dit niet voor elkaar krijgen. De naam die u heeft gedefinieerd is alleen geldig in de rekenmap waarin u deze heeft gedefinieerd. U kan misschien een naam definieren in uw huidig rekenmap die een bronbestand heeft in een andere rekenmap?

Offline Arion

  • Lid
Re: macro's in openoffice.org Calc
« Reactie #4 Gepost op: 2009/12/03, 17:09:30 »
Pattattezak,

sorry, als ik niet zo duidelijk ben geweest over het opslaan van de macro's. Ik vind het best als het allemaal in een bestand staat, maar hoe kan ik zeggen: "sla nu de macro's op" (voor de zekerheid)? In het menu "Bestand" zijn "opslaan" en "opslaan als" niet actief.
Wat de celnaam betreft begrijp ik het ook niet goed. Een adres als "C12" is immers ook lokaal voor een blad in een map. Daarom zet ik in de koppeling deze namen voor ".C12", b.v. "'file:///home/gebruiker/boekhouding/I_2008.ods'#$'kas uit maart'.C12". Kan dit ook niet voor een celnaam?

Re: macro's in openoffice.org Calc
« Reactie #5 Gepost op: 2009/12/03, 20:09:02 »
Verander eens iets aan de macrotekst die van belang is. Normaal kan u nu wel klikken op Bestand>>Opslaan. Opslaan als ... is inderdaad nooit actief.

De celnaam C12 is vooraf duidelijk gedefinieerd daar de programmamaker. De naam die u voor deze cel definieerd, voldoet aan bepaalde kenmerken zoals de programmamaker deze heeft voorzien. Als u in een macro cel A1 aanspreekt heeft u de keuze: ofwel Cell(0,0) ofwel CellByName(A1). In VBA van MSExcel kan u cel A1 aanspreken met Cell(1;1). Waarom is dit verschillend? Andere programma schrijvers, andere keuzes?

In uw bronbestand kan u onmogelijk alle cellen benutten. In een cel waarvan u weet dat u deze niet nodig zal hebben typt u °=de_door_u_gedefinieerde_naam° In uw doelbestand maakt u een verwijzing naar deze cel. Op deze manier kan u dezelfde naam toekennen aan een andere cel in uw bronbestand, uw doelbestand zal deze wijziging opnemen.

Offline Jenske

  • Lid
Re: macro's in openoffice.org Calc
« Reactie #6 Gepost op: 2009/12/04, 10:39:32 »
Ik ben geen echte computerman, maar ik kan je wel een tip geven om te achterhalen hoe het werkt.

Ten eerste: er zijn programma's die als het ware permanent opslaan. Zo weet ik bijvoorbeeld dat het databaseprogramma Access (onder windows) onmiddellijk wijzigingen opslaat, idem voor Base (onder OpenOffice.org).

Het is dus mogelijk dat hetzelfde gebeurt in Calc.

Hoe kan je dat controleren volgens mij:

-- Maak een eenvoudige macro, die als tekst geeft "Josje". (Opgelet: dat woord Josje mag je zelf kiezen, maar het moet een woord zijn dat absoluut niet Engels is en je nog nooit op je PC hebt gebruikt; ik leg later uit waarom).
-- Sla het rekenblad op, sluit Calc gewoon af.
-- Open Calc (enkel Calc, dus geen andere OOoffice-paketten) en wijzig de weer te geven tekst in de macro van "Josje" naar "Fabiola" (Opgelet: dat woord Fabiola mag je zelf kiezen, maar het moet een woord zijn dat absoluut niet Engels is en je nog nooit op je PC hebt gebruikt; ik leg later uit waarom).
-- Sluit dan Calc niet gewoon af, maar blokkeer gewoon het office-programma, hetzij vanuit de systeemmonitor, hetzij door op de vensterbalk bovenaan rechts te klikken en dan "sluiten" te kiezen. Op die wijze sluit je dus het programma af zonder iets te bewaren.
-- Wacht een minuut of twee (zonder andere programma's te hebben draaien!), zodat alle buffers en caches "doorgespoeld" zijn naar de harde schijf.
-- Start Calc.

Als Calc nu inderdaad, zoals ik vermoed, "automatisch" bewaart, zal je, bij het starten van de macro de tekst "Fabiola" zien verschijnen.
Als dat automatisch opslaan niet is gebeurd, zou je normaliter "Josje" als output moeten zien.

Dit leidt dus niet tot de oplossing van je vraag -- "waar slaat hij de macro's op" -- maar zo kan je al wel weten hoe het opslaan verloopt.

Om die macro dan effectief op te zoeken kan je dan vanaf de root een grootse zoekopdracht geven, nl. naar alle bestanden waarin het woord "Josje" of "Fabiola" staat. Aangezien die woorden normaliter in geen enkel programma of bestand voorkomen, zou je normaliter maar een zeer beperkt aantal bestanden mogen uitkomen. In één van die bestanden zou dan (volgens mij) die macro moeten zitten. Let wel: zo'n zoekopdracht kan gemakkelijk enkele tot meerdere minuten duren, aangezien je echt alle bestanden moet laten doorzoeken vanop de root.
« Laatst bewerkt op: 2009/12/04, 10:42:27 door Jenske »
.. Kubuntu 23.10 op een ...
.. geen idee welk computermerk, 32 Gbyte RAM, 4 Gbyte video-RAM

Offline Jenske

  • Lid
Re: macro's in openoffice.org Calc
« Reactie #7 Gepost op: 2009/12/04, 10:44:12 »
Voor alle duidelijkheid: ik geef toe dat mijn werkwijze, zoals hierboven aangehaald, eerder ambachtelijk is. Maar wie niet slim is, zeg ik altijd maar, moet dom zijn. XD
.. Kubuntu 23.10 op een ...
.. geen idee welk computermerk, 32 Gbyte RAM, 4 Gbyte video-RAM

Offline Arion

  • Lid
Re: macro's in openoffice.org Calc
« Reactie #8 Gepost op: 2009/12/04, 11:49:30 »
Bedankt, mensen, voor jullie hulp. Ik zal de aangeboden procedures eens proberen en ook zelf nog wat verder zoeken.

Offline Arion

  • Lid
Re: macro's in openoffice.org Calc
« Reactie #9 Gepost op: 2009/12/08, 11:27:02 »
Het is me uiteindelijk toch gelukt om een koppeling te maken naar een Range met naam in een andere werkmap. Voor andere mensen die daar net als ik naar op zoek zijn ga ik even vertellen hoe:
Ik gebruik toch de functie DDE. Ik heb gemerkt dat die een string-resultaat geeft. De "cryptische" tekens die ik in mijn eerste post heb genoemd, zijn steeds de zelfden, dus makkelijk weg te filteren. Daarna moet ik de string nog veranderen in een waarde, wat resulteert in het volgende:
=WAARDE(DEEL(DDE("soffice";"file:///home/pad/en/bestandsnaam.ods";"mijnRange");6;20))
Toegegeven, niet echt fraai, meer het werkt wel. Als iemand een mooiere oplossing heeft, ben ik daar heel benieuwd naar.

Re: macro's in openoffice.org Calc
« Reactie #10 Gepost op: 2009/12/08, 18:17:57 »
Hartelijk dank om dit hier te melden. Zo leer ik ook weer een beetje bij!!  ;)