
Hjemmelavet makro
Moderator: Lodahl
-
- Posts: 16
- Joined: 13. Jul 2004 00:22
- Location: Sjølund
Hjemmelavet makro
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
Ole Sørensen
Re:Hjemmelavet makro
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
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
Re:Hjemmelavet makro
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 ;-))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
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. :-(
-
- Posts: 16
- Joined: 13. Jul 2004 00:22
- Location: Sjølund
Hjemmelavet makro
Som i måske har opdaget har jeg lidt problemer med forummetAnonymous wrote: Funktionen virker, men bliver som sagt ikke automatisk opdateret.

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

Med Venlig Hilsen
Ole Sørensen
Ole Sørensen
-
- Posts: 16
- Joined: 13. Jul 2004 00:22
- Location: Sjølund
Re:Hjemmelavet makro
Sag afslutte
Det er slet ikke muligt at bruge en funktion som jeg ønsker, så jeg må leve med de matix formler jeg har

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
Ole Sørensen