Hjemmelavet makro

Brugerhjælp og support til regneark i LibreOffice Calc

Moderator: Lodahl

Post Reply
NeedACoolName
Posts: 16
Joined: 13. Jul 2004 00:22
Location: Sjølund

Hjemmelavet makro

Post by NeedACoolName »

Jeg har lavet en funktion som finder største og mindste værdi i et bestemt data område. Det virker fint, men hvis jeg taster nye tal ind i det definerede data område bliver værdierne ikke genberegnet. Det virker kun hvis jeg kopiere formlen ind i cellerne igen. Nogen hints :?:
Med Venlig Hilsen
Ole Sørensen
JFM
Posts: 224
Joined: 21. Oct 2003 20:04
Location: Odense

Re:Hjemmelavet makro

Post by JFM »

Nu har jeg ikke nogen erfaringer med makroer, men regnearket har en funktion der beregner på min.- og. max tallet.

Stil dig i den celle du vil beregne minimumstallet for.
Skriv: =min( og marker herefter området og tryk Enter

Ved max. Samme fremgangsmåde, men skriv maks i stedet for

På denne måde bliver min. og max. automatisk opdateret.

Håber det er løsningen.

Hilsen

Jørgen
Guest

Re:Hjemmelavet makro

Post by Guest »

JFM wrote:Nu har jeg ikke nogen erfaringer med makroer, men regnearket har en funktion der beregner på min.- og. max tallet.

Stil dig i den celle du vil beregne minimumstallet for.
Skriv: =min( og marker herefter området og tryk Enter

klip
Håber det er løsningen.

Hilsen
Jørgen
Det er det desværre ikke; jeg har forsøgt at løse opgaven med matrix formler, og det virker, men er desværre lidt "langhåret" (havde hjælp til formlerne), min egen funktion er nemmere at gennemskue (for mig ihvertfald ;-))
For at finde største positive værdi skal formlen se således ud:
{=MAKS((Dankort.B$3:B$150=A2)*(Dankort.D$3:D$150))}
For at finde mindste positive værdi:
{=STØRSTE((Dankort.B$2:Dankort.B$150=A2)*(Dankort.D$2:Dankort.D$150);TÆL.HVIS(Dankort.B$2:Dankort.B$150;A2))}
For at finde største negative værdi:
{=MIN((Dankort.B$3:B$150=A6)*(Dankort.D$3:D$150))}
For at finde mindste negative værdi:
{=MINDSTE((Dankort.B$2:Dankort.B$150=A6)*(Dankort.D$2:Dankort.D$150);TÆL.HVIS(Dankort.B$2:Dankort.B$150;A6))}

Det har jeg løst ved at lave en funktion som bliver kaldt således:
=FINDVAERDI(A2;"Dankort";"B3";"D150";1)
A2 er en tekst som bruges som betingelse

Det sidste 1 tal er en Sand / Falsk betingelse
Funktionen virker, men bliver som sagt ikke automatisk opdateret. :-(
NeedACoolName
Posts: 16
Joined: 13. Jul 2004 00:22
Location: Sjølund

Hjemmelavet makro

Post by NeedACoolName »

Anonymous wrote: Funktionen virker, men bliver som sagt ikke automatisk opdateret. :-(
Som i måske har opdaget har jeg lidt problemer med forummet :oops: og jeg har stadigvæk ikke fundet en løsning på mit problem.

Funktionen ser således ud:
Function FindVaerdi(Celle As String, Stoerst As Boolean) As Double
Dim Doc As Object
Dim Sheet As Object
Dim Cell As Object
Dim CellRange As Object
Dim X As Integer ' Tæller til løkke
Dim dFindVaerdi As Double
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets.getByName("Dankort")
CellRange = Sheet.getCellRangeByName("B3:D150")
' Find første forekomst af søgte (Celle)
X = 0
Do
Cell = CellRange.GetCellByPosition(0,X)
If Cell.Type = com.sun.star.table.CellContentType.EMPTY Then Exit Do
If Cell.String = Celle Then
Cell = CellRange.GetCellByPosition(2,X)
dFindVaerdi = Cell.Value
' Den første forekomst er fundet
Exit do
EndIf
X = X + 1
Loop
Do
Cell = CellRange.GetCellByPosition(0,X)
If Cell.Type = com.sun.star.table.CellContentType.EMPTY Then Exit Do
If Cell.String = Celle Then
Cell = CellRange.GetCellByPosition(2,X)
If Stoerst Then
If Cell.Value > dFindVaerdi Then
dFindVaerdi = Cell.Value
EndIf
Else
If Cell.Value < dFindVaerdi Then
dFindVaerdi = Cell.Value
EndIf
EndIf
endif
X = X + 1
Loop
FindVaerdi = dFindVaerdi
End Function


Jeg har haft noget fejlhåndtering indbygget, det har jeg fjernet, og det giver følgende fejl når jeg åbner regnearket:

Objectvariablen er ikke initialiseret.
og det linjen:
Sheet = Doc.Sheets.getByName("Dankort")
der er kludder med. Jeg har placeret funktionen i Dokument.Standard i et modul der hedder "MyFirst"
Håber det hjælper, jeg er virklig desperat :? Jeg vil ikke tilbage til M$ (hvis jeg kan undgå det)
Med Venlig Hilsen
Ole Sørensen
NeedACoolName
Posts: 16
Joined: 13. Jul 2004 00:22
Location: Sjølund

Re:Hjemmelavet makro

Post by NeedACoolName »

Sag afslutte :!:
Det er slet ikke muligt at bruge en funktion som jeg ønsker, så jeg må leve med de matix formler jeg har :)
Med Venlig Hilsen
Ole Sørensen
Post Reply