Macro geeft geen fout maar werkt niet

Macro geeft geen fout maar werkt niet

Berichtdoor Atwist » vr okt 28, 2016 4:01 pm

Hallo allen

Ik klop hier weer eens aan omdat ik er niet uit kom (kennis van StarBasic is ontoereikend)

Het probleem: ik probeer een macro te maken met als doel het berekenen van bepaalde kosten wanneer men een nieuwe maand ingaat
Dus als ik op de button druk "nieuwe maand" dan worden allerlei bedragen gekopieerd naar de nieuwe maand maar er moet ook gerekend worden.
Voor als de vraag komt, de button kan maar 1 keer per maand worden gebruikt dan word deze disable.
In de onderstaande macro staat een vast bedrag in E9 (mk_1) en nu moet F9 telkens wanneer de macro wordt gebruikt worden opgehoogd met E9 (mk_1), maar wat is er nu fout
Code: Selecteer alles   UitklappenInklappen
Sub OptellenJaarkosten
   Dim mk_1 as String
   Dim Range as string
      Doc = ThisComponent
      Sheets = Doc.Sheets()
      Sheet = Sheets.getByName("Jaarkosten")
        mk_1 = Range("E9")
   Range("F9") = Range("F9") +mk_1
   mk_2 = Range("E10")
   Range("F10") = Range("F10") +mk_2
End sub


Met VBA is het voor mij geen probleem alleen loopt de rest in de soep omdat ik "Option VBASupport 1" gebruik, maar zo lukt het mij wel.
Code: Selecteer alles   UitklappenInklappen
Option VBASupport 1   
Sub OptellenJaarkosten
        mk_1 = Sheets("Jaarkosten").Range("E9")
   Sheets("Jaarkosten").Range("F9") = Sheets("Jaarkosten").Range("F9") +mk_1
   mk_2 = Sheets("Jaarkosten").Range("E10")
   Sheets("Jaarkosten").Range("F10") = Sheets("Jaarkosten").Range("F10") +mk_2
End sub


Graag een tip van jullie kant.
Andreas

LibreOffice 4.4.7.2. op Linux Mint en zeker geen Versie 5 meer.
Atwist
 
Berichten: 52
Geregistreerd: ma sep 14, 2015 8:56 am

Re: Macro geeft geen fout maar werkt niet

Berichtdoor Atwist » vr okt 28, 2016 4:28 pm

Ha, ik vond een voorbeeld en deze werkt goed

Code: Selecteer alles   UitklappenInklappen
Sub OptellenJaarkosten
   sheet = ThisComponent.Sheets.GetByName("Jaarkosten")
   maand = sheet.getCellRangeByName("E9:F27")
   data = maand.DataArray
   for each row in data
      row(1) = row(0)+row(1)
   next
   maand.DataArray = data
End Sub


Maar als ik nu minus de maandkosten doe dan werkt dat niet en volgens mij is het toch de "+" vervangen door de "-".

Code: Selecteer alles   UitklappenInklappen
Sub AftrekkenJaarkosten
sheet = ThisComponent.Sheets.GetByName("Jaarkosten")
   maand = sheet.getCellRangeByName("E9:F27")
   data = maand.DataArray
   for each row in data
      row(1) = row(0)-row(1)
   next
   maand.DataArray = data
End Sub
Andreas

LibreOffice 4.4.7.2. op Linux Mint en zeker geen Versie 5 meer.
Atwist
 
Berichten: 52
Geregistreerd: ma sep 14, 2015 8:56 am

Re: Macro geeft geen fout maar werkt niet

Berichtdoor RPG » vr okt 28, 2016 6:41 pm

Hallo

Ik denk dat je op het Engelse forum moet zoeken naar functionaccess. Daar staan verschillende voorbeelden hoe die te gebruiken. Ik geloof dat het gebruik wel taal gevoelig is. Dus je moet goed kijken welke naam je gebruikt voor een functie. Als je Nederlandstalige namen gebruikt dan moet je het nu ook doen.

Wanneer je met getallen wilt werken dan moet je een variabele niet als string definieren. Dat zag ik in het eerste bericht later niet meer.

Ik ben niet zo bekend met werkblad macro's. Ik heb dus geen idee. Ik zal nog wel even kijken.

Romke
LibreOffice 6.2.5.2 op openSUSE Leap 15.1
RPG
 
Berichten: 3967
Geregistreerd: wo apr 15, 2009 1:01 am
Woonplaats: Apeldoorn, Nederland

Re: Macro geeft geen fout maar werkt niet

Berichtdoor RPG » vr okt 28, 2016 8:13 pm

Hallo

Over de fout met minus kan ik weinig zeggen. Bij mij werkt het goed. Ik denk dat je een fout in je code hebt.

Naast het maken van code is het leren debuggen van je eigen code ook erg belangrijk. Bovendien leer je hoe de gegevens zijn opgeslagen. StarBASIC heeft diverse functies om iets te weten te komen over de gebruikte variabelen. In de libraries Tools van BASIC zitten diverse macro's die zich goed laten gebruiken. Je kunt ze gebruiken om te leren, gewoon gebruiken maar ook bij fout zoeken.

Zelf heb ik ook goed de mogelijkheden van de API gebruikt. Daar zitten mogelijkheden in die het fout zoeken ook vergemakkelijken. Het is vaak beter om in het begin goed te testen dan later op een fout uit te komen.

Romke
LibreOffice 6.2.5.2 op openSUSE Leap 15.1
RPG
 
Berichten: 3967
Geregistreerd: wo apr 15, 2009 1:01 am
Woonplaats: Apeldoorn, Nederland


Keer terug naar Macro's

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 1 gast