2017-02-01 2 views
0

Ich habe folgendes versucht und es funktioniert nicht - irgendwelche anderen Vorschläge?Excel-Makro - Wie Ändern der Registerkartenfarbe basierend auf Zelle in einem separaten Arbeitsblatt in derselben Arbeitsmappe?

Private Sub Worksheet_Change(ByVal Target As Range) 
MyVal = Range("'Summary'!A8").Text 

With ActiveSheet.Tab 
    Select Case MyVal 
     Case "Black" 
      .Color = vbBlack 
     Case "Red" 
      .Color = vbRed 
     Case "Green" 
      .Color = vbGreen 
     Case "Yellow" 
      .Color = vbYellow 
     Case "Blue" 
      .Color = vbBlue 
     Case "Magenta" 
      .Color = vbMagenta 
     Case "Cyan" 
      .Color = vbCyan 
     Case "White" 
      .Color = vbWhite 
     Case Else 
      .ColorIndex = xlColorIndexNone 
    End Select 
End With 
End Sub 
+2

ist: "Es funktioniert nicht" nicht sehr hilfreich. Was passiert - ein Fehler, nichts, ...? Sie müssen auch klären, wo dieser Code ist und welche Blattzeile farbig sein soll. – SJR

+0

Ich habe gerade einen ähnlichen Code ausgeführt und der Code schien gut zu funktionieren. Der einzige Unterschied ist, dass ich Ihre 'MyVal'-Deklaration entfernt habe und die' Select'-Anweisung in '' Case Sheets ("Zusammenfassung") geändert hat. Bereich ("A8"). Value'. –

Antwort

0
Private Sub Worksheet_Change(ByVal Target As Range) 
Dim MyVal$ 
MyVal = ActiveWorkbook.Sheets("Summary").Range("A8") 

With ActiveSheet.Tab 
    Select Case MyVal 
     Case "Black" 
      .Color = vbBlack 
     Case "Red" 
      .Color = vbRed 
     Case "Green" 
      .Color = vbGreen 
     Case "Yellow" 
      .Color = vbYellow 
     Case "Blue" 
      .Color = vbBlue 
     Case "Magenta" 
      .Color = vbMagenta 
     Case "Cyan" 
      .Color = vbCyan 
     Case "White" 
      .Color = vbWhite 
     Case Else 
      .ColorIndex = xlColorIndexNone 
    End Select 
End With 
End Sub 
Verwandte Themen