Avatar billede lunddata Nybegynder
08. august 2006 - 13:41 Der er 20 kommentarer og
1 løsning

Manuel beregning og grafisk afbildning

Har et regneark hvor værdierne i a1:a3 fremkommer efter manuel beregning via VBA-kode.
Værdierne i a1:a3 danner grundlag for søjlediagram.
Mit spørgsmål er: hvordan får jeg opdateret søjlediagrammet når der fremkommer nye værdier i a1:a3? (den manuelle beregning må ikke slås fra!!!)
Avatar billede excelent Ekspert
08. august 2006 - 18:01 #1
Calculate
Avatar billede lunddata Nybegynder
08. august 2006 - 19:02 #2
Den manuelle beregning må ikke slås fra!!!
Avatar billede lunddata Nybegynder
08. august 2006 - 19:08 #3
Men hvis jeg kan begrænse Calculate til kun at omfatte værdier fra a1:a3 så er det ok. Grunden til denne begrænsning er at der i nogle af regnearkets øvrige celler fremkommer værdier ved hjælp af slump-funktionen,- disse værdier må ikke ændres.
Avatar billede excelent Ekspert
08. august 2006 - 19:20 #4
Sheets("Ark1").Range("A1:A3").Calculate
Avatar billede lunddata Nybegynder
08. august 2006 - 19:31 #5
Kan ikke få denne til at virke
Avatar billede excelent Ekspert
08. august 2006 - 19:40 #6
Ret evt. Ark1 til det aktuelle

har du flere projektmapper åbne, skal projektnavnet med i formel
fx.
Workbooks("dit navn").Sheets("Ark1").Range("A1:A3").Calculate
Avatar billede lunddata Nybegynder
08. august 2006 - 19:49 #7
Mit ark hedder Subtraktion
Sheets("Subtraktion").Range("A1:A3").Calculate virker første gang denne bliver aktiveret, men ikke når der sker en ændring i cellerne a1:a3 og koden aktiveres igen.
Avatar billede excelent Ekspert
08. august 2006 - 19:54 #8
kan du ikke paste hele/eller en del af koden her
Avatar billede lunddata Nybegynder
08. august 2006 - 19:57 #9
Den fylder nok lidt meget, men kan jeg sende dig arket på mail?
Avatar billede excelent Ekspert
08. august 2006 - 19:59 #10
check lige om Calculate linien kommer EFTER linierne som påvirker A1:A3

ellers send til
pm@madsen.tdcadsl.dk
Avatar billede excelent Ekspert
08. august 2006 - 20:42 #11
Tilføj linie 2, så tror jeg den virker

Sheets("Subtraktion").Range("i57:i59").Calculate
Sheets("Subtraktion").ChartObjects("Diagram 4").Application.Calculate
Avatar billede lunddata Nybegynder
08. august 2006 - 21:03 #12
MANGE TAK det virker rigtig godt.
Kan jeg tillade mig at stille spørgsmål om hvordan det ville se ud hvis jeg skulle have det til at slå igennem i samme projektmappe i alle ark stadig med kildedata fra ("i57:i59").
Avatar billede lunddata Nybegynder
08. august 2006 - 21:13 #13
Hovsa!
Sheets("Subtraktion").Range("i57:i59").Calculate
Sheets("Subtraktion").ChartObjects("Diagram 4").Application.Calculate
... ændrer opgaverne, når koden aktiveres.
f.eks 7 - 4 = 3 ... herefter ektiveres koden og slump er blevet aktiveret og der står måske 8 - 2 = 3 (facit bibeholdes fra før)....- ikke så smart!
Avatar billede excelent Ekspert
08. august 2006 - 21:23 #14
ser lige om det kan undgåes
Avatar billede excelent Ekspert
08. august 2006 - 22:22 #15
kunne ikke lige få den til at undgå genberegning, i stedet opdateres
kildedata, som samtidig opdaterer grafen,- det ser ud til at virke.

Sheets("Subtraktion").Range("i57:i59").Calculate
ActiveSheet.ChartObjects("Diagram 4").Activate
ActiveChart.ChartArea.Select
ActiveChart.SetSourceData Source:=Sheets("Subtraktion").Range("B57:B59,I57:I59"), PlotBy:=xlColumns
Range("I60").Select
Avatar billede bak Forsker
08. august 2006 - 22:34 #16
Hvis du gør sådan her sker der ingen rekalkulation.

Sub test()

    Dim Var1, Var2, Var3
    Dim ws As Worksheet
    Set ws = Sheets("Subtraktion")
    With ws
        Var1 = .Range("i57")
        Var2 = .Range("i58")
        Var3 = .Range("i59")
        .ChartObjects(1).Chart.SeriesCollection(1).Formula = _
            "=SERIES(,{1,2,3},{" & Var1 & "," & Var2 & "," & Var3 & "},1)"
    End With
End Sub
Avatar billede lunddata Nybegynder
08. august 2006 - 23:05 #17
Til Kommentar: excelent
08/08-2006 22:22:43
SÅDAN!
Så ser det hele ud til at virke efter hensigten. MANGE TAK!
Kan jeg tillade mig at stille spørgsmål om hvordan det ville se ud hvis jeg skulle have det til at slå igennem i samme projektmappe i alle ark stadig med kildedata fra ("i57:i59").
Avatar billede excelent Ekspert
08. august 2006 - 23:07 #18
kikker på det
Avatar billede excelent Ekspert
08. august 2006 - 23:48 #19
hvis du får fejl i første linie, skal x dimmes - Dim x
Substraktion (2) arket bliver ikke påvirket (gik ud fra det er en kopi)

x = ActiveSheet.Name
Application.ScreenUpdating = False
Sheets("Subtraktion").Range("i57:i59").Calculate
ActiveSheet.ChartObjects("Diagram 4").Activate
ActiveChart.ChartArea.Select
ActiveChart.SetSourceData Source:=Sheets("Subtraktion").Range("B57:B59,I57:I59"), PlotBy:=xlColumns
Range("I60").Select: Sheets("Addition").Range("i57:i59").Calculate
Sheets("Addition").ChartObjects("Diagram 5").Activate
ActiveChart.ChartArea.Select
ActiveChart.SetSourceData Source:=Sheets("Addition").Range("B57:B59,I57:I59"), PlotBy:=xlColumns
Range("I60").Select: Sheets("Multiplikation").Range("i57:i59").Calculate
Sheets("Multiplikation").ChartObjects("Diagram 4").Activate
ActiveChart.ChartArea.Select
ActiveChart.SetSourceData Source:=Sheets("Multiplikation").Range("B57:B59,I57:I59"), PlotBy:=xlColumns
Range("I60").Select: Sheets("Division").Range("i57:i59").Calculate
Sheets("Division").ChartObjects("Diagram 4").Activate
ActiveChart.ChartArea.Select
ActiveChart.SetSourceData Source:=Sheets("Division").Range("B57:B59,I57:I59"), PlotBy:=xlColumns
Range("I60").Select: Sheets(x).Select: Range("I60").Select
Application.ScreenUpdating = True
Avatar billede lunddata Nybegynder
09. august 2006 - 15:58 #20
RIGTIG, RIGTIG FLOT stykke arbejde. Jeg er meget glad for de flotte løsninger. TAK!!!! Lægger du et svar..
Avatar billede excelent Ekspert
09. august 2006 - 17:22 #21
ok velbekom
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester