Avatar billede rosco Novice
08. juli 2005 - 14:45 Der er 8 kommentarer og
1 løsning

Cellereference i en makro

Denne makro laver søjlerne i et diegram grønne hvos værdi er over 10, hvorfor kan jeg ikke lade værdien 10, være en reference til en cellen "C5" i ark1, =Range("C5").
det kan jeg ikke få til at virke.
Avatar billede rosco Novice
08. juli 2005 - 14:46 #1
Her kommer den omtalte makro

Sub Color_graph()

Const DMin As Double = 10
Dim lCnt As Long
Dim rCell As Range
Dim YRange As Range
Dim MyChart As Chart
Dim vYRange
  If ActiveChart Is Nothing Then
      MsgBox ("Marker en graf, før du kører makroen")
      Exit Sub
  Else
    Set MyChart = ActiveChart
  End If
    vYRange = Split(MyChart.SeriesCollection(1).Formula, ",")
    Set YRange = Range(vYRange(2))
    lCnt = 0
    For Each rCell In YRange
        lCnt = lCnt + 1
        With MyChart.SeriesCollection(1).Points(lCnt).Interior
            If rCell.Value < DMin Then .ColorIndex = 3 Else .ColorIndex = 4
        End With
    Next
End Sub
Avatar billede idle Nybegynder
08. juli 2005 - 14:58 #2
Du kan ikke lade en const læse en værdi fra en celle.
Du kan sagtens gøre sådan her:

Dim DMin
DMin = Range("C5")
Avatar billede rosco Novice
08. juli 2005 - 15:05 #3
Dim DMin As ?
Avatar billede rosco Novice
08. juli 2005 - 15:08 #4
Får denne fejlmeddelelse,

Run-time error '1004'
Metod 'Range' of objekt_Global failed
Avatar billede idle Nybegynder
08. juli 2005 - 15:12 #5
Prøv lige med

DMin = Sheets("ark1").range("c5")

Og du kan dimm dmin til double,long , variant etc. (efter ønske og formål)
Avatar billede rosco Novice
08. juli 2005 - 15:16 #6
Subscript out of range
Avatar billede rosco Novice
08. juli 2005 - 15:31 #7
Nu virker det.
Jeg havde omdøbt ark1 til Data.
Avatar billede rosco Novice
08. juli 2005 - 15:32 #8
koden kom til at se sådan ud.

Sub Color_graph2()

Dim DMin As Double
DMin = Sheets("Data").Range("C5")
Dim lCnt As Long
Dim rCell As Range
Dim YRange As Range
Dim MyChart As Chart
Dim vYRange
  If ActiveChart Is Nothing Then
      MsgBox ("Marker en graf, før du kører makroen")
      Exit Sub
  Else
    Set MyChart = ActiveChart
  End If
    vYRange = Split(MyChart.SeriesCollection(1).Formula, ",")
    Set YRange = Range(vYRange(2))
    lCnt = 0
    For Each rCell In YRange
        lCnt = lCnt + 1
        With MyChart.SeriesCollection(1).Points(lCnt).Interior
            If rCell.Value < DMin Then .ColorIndex = 3 Else .ColorIndex = 4
        End With
    Next
End Sub
Avatar billede rosco Novice
08. juli 2005 - 15:38 #9
Tak for hjælpen.
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