Problem med farve på arkfaner
HejJeg 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
