Avatar billede hbl Nybegynder
01. august 2012 - 14:45 Der er 23 kommentarer

Formattering af datamærke i et diagram, bestemt af værdien

Jeg har lavet en vba kode, der laver et bestemt datamærke rødt, hvis værdien er 400 -  det virker.

Hvis jeg lader værdien i celle B3 styre gennem et rullepanel, så sker der ingen ting.
Jeg har prøvet at sætte følgende ind:
Private Sub scrollbar_selectionchange() istedet for - men det virker ikke.
Kan nogen løse den udfordring.

MVH

HHB

Private Sub worksheet_selectionchange(ByVal Target As Range)
If Range("b3").Value = 400 Then
ActiveSheet.ChartObjects("Diagram 1").Activate
    ActiveChart.SeriesCollection(1).Select
    ActiveChart.SeriesCollection(1).Points(2).Select
    With Selection.Border
        .Weight = xlThin
        .LineStyle = xlAutomatic
    End With
    Selection.Shadow = False
    Selection.InvertIfNegative = False
    With Selection.Interior
        .ColorIndex = 13
        .Pattern = xlSolid
    End With
    ActiveWindow.Visible = False
    'Windows("Mappe1").Activate
  Else
  ActiveSheet.ChartObjects("Diagram 1").Activate
    ActiveChart.SeriesCollection(1).Select
    ActiveChart.SeriesCollection(1).Points(2).Select
    With Selection.Border
        .Weight = xlThin
        .LineStyle = xlAutomatic
    End With
    Selection.Shadow = False
    Selection.InvertIfNegative = False
    With Selection.Interior
        .ColorIndex = 6
        .Pattern = xlSolid
    End With
    ActiveWindow.Visible = False
  ' ActiveSheet.Range ("c3")
    End If
   
End Sub
Avatar billede Thorp Praktikant
02. august 2012 - 10:55 #1
Prøv at bruge Worksheet_Change i stedt for Selection_Change
Avatar billede hbl Nybegynder
02. august 2012 - 11:59 #2
Kære thorp

ja det har jeg faktisk, og der sker ingenting.

MVH
HHB
Avatar billede Thorp Praktikant
02. august 2012 - 13:51 #3
Prøv at bruge denne kode. Rullepanelet er indsat som et ActiveX objekt.

Private Sub SpinButton1_Change()

    If Range("b3").Value = 400 Then
   
        ActiveSheet.ChartObjects("Diagram 1").Select
        ActiveChart.SeriesCollection(1).Points(2).MarkerBackgroundColorIndex = 13
       
      Else
     
        ActiveSheet.ChartObjects("Diagram 1").Select
        ActiveChart.SeriesCollection(1).Points(2).MarkerBackgroundColorIndex = 6
   
    End If

End Sub
Avatar billede hbl Nybegynder
03. august 2012 - 09:21 #4
Kære thorp
Tak for din mail.
det virker ikke hos mig.
jeg tror min udfordring er at jeg ikke kan ændre værdien i celle b3 med mit kontrolelement.
når jeg istedet bruger kontrolelementer fra formular menuen, får jeg en fane kaldet "kontrolelement" og her kan jeg lave referencer til B3 bestemme min. og max. værdi.
Det er ikke muligt når jeg benytter kontrolelement fra kontrolelement menuen.
så hvordan får jeg styret værdien via mit kontrolelement som nu er et activex element.

Med venlig hilsen

HHB
Avatar billede Thorp Praktikant
03. august 2012 - 09:38 #5
Prøv følgende:

Opret en ny Excelmappe

Vælg "Udvikler" på Menuen - klik herefter "Indsæt kontrolelement"

Indsæt "Skalafelt" (ActiveX-objekter) - objektet bør nu være aktivt.

Vælg "Egenskaber" fra menuen Kontrolelementer. Skriv "b3" i feltet LinkedCell.

Angiv evt. Max og Min værdier samt smallchange.

Husk at afbryde designtilstand.

Prøv at klikke på "Spinbutton" i arket og se om Celle B3 ikke ændre værdier.
Avatar billede Thorp Praktikant
03. august 2012 - 09:41 #6
Samtidigt burde du nu have adgang til en procedurer i det ark,hvor du har indsat ActiveX objektet der f.eks. hedder:

SpinButton1_Change() - eller lignende
Avatar billede hbl Nybegynder
03. august 2012 - 11:16 #7
Kære Thorp
tak for dit respons.
det virkede med egenskaber til kontrol elementet.
det kører
tilbage står nu blot at vba kommer med 1004.
kan ikke angive egenskaben Markerbackgroundcolorindex for klassen Point.

jeg har prøver at finde en anden egenskab, uden held.
Kan du!

Mvh
HHB
Avatar billede Thorp Praktikant
03. august 2012 - 11:29 #8
Hvis du er sikker på at dit diagram fortsat hedder "Diagram 1"

så burde det virke.

Du kan kontrollere digramnavnet ved at aktivere diagrammet og se i navneboksen til venstre for formellinjen.

Alternativt kan du også bruge "MarkerBackgroundColor" som sættes med en RGB matrix - eks:

MarkerBackgroundColor = RGB (255, 0, 0) - burde være koden for Rød
Avatar billede hbl Nybegynder
03. august 2012 - 11:46 #9
Kære thorp
diagrammet hedder Daigram 1

Jeg får samme fejlmeddelese som før også hvis jeg bruger dit sidste forslag med rbg kode tallene for farver.

MVH

HHB
Avatar billede Thorp Praktikant
03. august 2012 - 12:17 #10
prøv at kopi/paste koden ind her- så ser jeg på det.
Avatar billede hbl Nybegynder
03. august 2012 - 12:36 #11
Private Sub SpinButton1_Change()

    If Range("b3").Value = 400 Then
   
        ActiveSheet.ChartObjects("Diagram 1").Select
        ActiveChart.SeriesCollection(1).Points(2).MarkerBackgroundColor = RGB(255, 0, 0)
       
      Else
     
        ActiveSheet.ChartObjects("Diagram 1").Select
        ActiveChart.SeriesCollection(1).Points(2).MarkerBackgroundColor = RGB(205, 0, 0)
   
    End If

End Sub
Avatar billede Thorp Praktikant
03. august 2012 - 12:55 #12
Den virker hos mig - hvilken version af Excel kører du?
Avatar billede hbl Nybegynder
03. august 2012 - 13:02 #13
Kære thorp

jeg kører med excel 2003 og sp 3

MVH
HHB
Avatar billede Thorp Praktikant
03. august 2012 - 13:12 #14
OK - det kan være årsagen.

prøv denne variant:


Private Sub SpinButton1_Change()

    If Range("b3").Value = 400 Then
   
        ActiveSheet.ChartObjects("Diagram 1").Select
        ActiveChart.SeriesCollection(1).Points(2).Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
       
      Else
     
        ActiveSheet.ChartObjects("Diagram 1").Select
        ActiveChart.SeriesCollection(1).Points(2).Format.Fill.ForeColor.RGB = RGB(0, 0, 0)
   
    End If
       
End Sub
Avatar billede Thorp Praktikant
03. august 2012 - 13:23 #15
eller denne:

ActiveChart.SeriesCollection(1).Points(2).Interior.PatternColor = RGB(255, 0, 0)
Avatar billede hbl Nybegynder
03. august 2012 - 13:42 #16
Kære thorp

dit første forslag kommer med fejl error 438. object support not this property or method
Dit næste forslag kører uden fejl meddelese, men farven ændre sig ikke

Mvh

HHB
Avatar billede Thorp Praktikant
03. august 2012 - 13:48 #17
Prøv med colorindex = 13 eller Patterncolorindex=13
Avatar billede Thorp Praktikant
03. august 2012 - 13:49 #18
I stedet for PatternColor = RGB (255,0,0)
Avatar billede hbl Nybegynder
03. august 2012 - 13:57 #19
Kære Thorp
tak for din tålmodighed - men desværre duer det stadig ikke.
var det en ide om jeg sendte dig min fil.

MVH

HHB
Avatar billede Thorp Praktikant
03. august 2012 - 14:04 #20
Du kan evt. lægge den her:

Link: http://www.gupl.dk
Avatar billede hbl Nybegynder
03. august 2012 - 14:07 #21
Kære thorp

det vil jeg gøre iaften, da vi har noget filter på der nægte mig adgang til dig.

MVH
HHB
Avatar billede hbl Nybegynder
03. august 2012 - 21:53 #22
filen er oploaded.

MVH

HHB
Avatar billede hbl Nybegynder
08. august 2012 - 09:25 #23
Kære Thorp

jeg har ikke oploaded filen korrekt.

send mig evt. istedet en mail. på HBL@willis.dk
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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