Avatar billede steensommer Praktikant
06. januar 2004 - 15:38 Der er 7 kommentarer og
1 løsning

Problem med farve på arkfaner

Hej

Jeg har en projektmappe (Operation.xls) der åbnes vha vba fra en anden mappe. Når mappen åbnes fremkommer en inputbox der beder en operationsuge. Hvis ugen eksisterer åbner den arket med ugen ellers oprettes et nyt ark udfra Sheet1 (der derefter skjules).
For let at kunne se om pågældende operationsuge er booket op / helt eller halv tom har jeg givet fanerne farve efter hvor mange ledige pladser der er - dette er gjort med CountA (tæller tomme pladser).
Tingene fungerer fint i systemer med Excel 2002 men i Excel 2000 fremkommer en fejl ved nedenstående linie.
Koden ligger som beskrevet i Worksheet_Change (). Når Excel 2000 anvendes og "on error goto Slut" er sat til laver den 3 fejl hvorefter den korrekt opretter et ark med rigtige navn men UDEN farve???
Hvad er årsagen og kan det løses (uden at skulle investere flere tusinde kr i nye officepakker)

vh Steen 

Hele koden vises her:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Trange As Range
Dim C As Range
Set Trange = Range("B5,B7,B9,B11,B13,B15,B18,B20,B22,B24,B26,B28,B30,B32,B34")

'slå alle events fra da vi her henter nye data og den ellers vil køre igen.
Application.EnableEvents = False

On Error GoTo Slut

'check om den indtastede celle er i Trange
If Not Intersect(Target, Trange) Is Nothing Then
  'Hvis cellen ikke er tom (blevet slettet)
  If Len(Target.Value) > 0 Then
      'kør Trange igennem for at lede efter et match (dublet)
      For Each C In Trange
        'Hvis der er en dublet så ryd alle data i dublettens række
        If C.Value = Target.Value And C.Address <> Target.Address Then
            'c.EntireRow.ClearContents
            C.Offset(0, 0).ClearContents
            C.Offset(0, 1).ClearContents
            C.Offset(1, 1).ClearContents
            C.Offset(0, 2).ClearContents
            C.Offset(0, 4).ClearContents

        End If
      Next
      'hent data
     
    If Left(Target.Value, 1) = "0" Or Left(Target.Value, 1) = "9" Then
    Call GetTable(Target)
   
    Else:
    MsgBox ("Kan kun anvendes til Operationspatienter")
   
    End If
   
  Else
      'hvis det er en celle der er blevet tømt så ryd resten af rækken
      'Target.EntireRow.ClearContents
      Target.Offset(0, 0).ClearContents
      Target.Offset(0, 1).ClearContents
      Target.Offset(1, 1).ClearContents
      Target.Offset(0, 2).ClearContents
      Target.Offset(0, 4).ClearContents

  End If

End If
Application.EnableEvents = True

Dim myCount As Integer                  'using the CountA ws function (all non-blanks)
myCount = Application.CountA(Range("B5,B7,B9,B11,B13,B15,B18,B20,B22,B24,B26,B28,B30,B32,B34"))
'MsgBox "The number of non-blank cell(s) in this selection is :  " & myCount, vbInformation, "Count Cells"
If myCount > 13 Then
ActiveWorkbook.ActiveSheet.Tab.ColorIndex = 3
ElseIf myCount > 8 And myCount < 14 Then
ActiveWorkbook.ActiveSheet.Tab.ColorIndex = 6
Else:
HER ER FEJLEN HIGHLIGHTET ------>ActiveWorkbook.ActiveSheet.Tab.ColorIndex = 4
End If

Exit Sub

'slå events til igen
Slut:
Application.EnableEvents = True
MsgBox ("Fejl fundet")

End Sub
Avatar billede bak Forsker
06. januar 2004 - 15:40 #1
Der er ikke farver på arkfaner i xl2000
Avatar billede steensommer Praktikant
06. januar 2004 - 15:41 #2
Og det kan der ikke komme???
Avatar billede steensommer Praktikant
06. januar 2004 - 15:45 #3
Dumt spørgsmål - svar lige bak så får du selvfølgelig point. I øvrigt det hurtigste svar jeg til dato har fået :0)
Avatar billede bak Forsker
06. januar 2004 - 15:47 #4
Nix, men du kan chekke hvilken version dit program kører på med 
If application.Version < 10 Then

og på den måde køre uden om farvelægningen (10 = XP, 9 = 2000)
Avatar billede bak Forsker
06. januar 2004 - 15:47 #5
ok :-)
Avatar billede steensommer Praktikant
06. januar 2004 - 15:49 #6
Tak skal du ha'. Jeg har samme problem med: Microsoft Word 10.0 Object Library - som er 9.0 på en xl2000. Har du også en kode til det?
Avatar billede bak Forsker
06. januar 2004 - 15:52 #7
Nej, ikke umiddelbart.
Jeg kan godt se problemet, når du videregiver dit program, men i øjeblikket kender jeg kun til at ændre det manuelt, eller lade være med at bruge referencer, og istedet bruge CreateObject.
Avatar billede steensommer Praktikant
06. januar 2004 - 16:38 #8
Ok tak skal du ha'
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