2017-07-05 3 views
-1

Ich bin neu zu Excel VBA Ich arbeite derzeit an einem Mapping mit Excel VBA. Das Konzept ist, wenn ich auf Zelle c6 klicke, färbt es die verschiedenen Zellkästen, die auf es anwendbar sind, geht gleich zu Zelle C7. Sowohl C6 als auch C7 haben eine gemeinsame Zellenzuordnung, die Zelle E6 ist. Aber jetzt habe ich bemerkt, dass, wenn ich auf Zelle C6 klicke, diese Zelle E6 nicht ihre Farbe zeigt, aber wenn ich auf C7 klicke, zeigt die Farbe auf dieser Zelle E6 die Farbe an meine C7, wenn Else-Anweisung das C6 auf dieser gemeinsamen Zelle E6 überschrieben hat, bitte wie kann ich das beheben, so dass, wenn ich auf sie einzeln klicke, sie die Farbshows zurückgeben. Unten ist mein Code:ExcelVBA Probleme mit IF else Anweisung

Sub AccessControl1() 
Range("C6").Interior.Color = RGB(255, 255, 0) 
Range("D13").Interior.Color = RGB(154, 205, 50) 

Range("E6").Interior.Color = RGB(154, 205, 50) 

Range("F6").Interior.Color = RGB(154, 205, 50) 
Range("AC6").Interior.Color = RGB(154, 205, 50) 
Range("BH6").Interior.Color = RGB(154, 205, 50) 
Range("DL7").Interior.Color = RGB(154, 205, 50) 
Range("DF9").Interior.Color = RGB(154, 205, 50) 
Range("DF6").Interior.Color = RGB(255, 20, 147) 
Range("DA7").Interior.Color = RGB(255, 20, 147) 
Range("DB23").Interior.Color = RGB(255, 20, 147) 
Range("DF212").Interior.Color = RGB(255, 20, 147) 
Range("DA215").Interior.Color = RGB(255, 20, 147) 

End Sub 
Sub AccessControl2() 
Range("C6").Interior.Color = RGB(255, 255, 255) 
Range("D13").Interior.Color = RGB(255, 255, 255) 

Range("E6").Interior.Color = RGB(255, 255, 255) 

Range("F6").Interior.Color = RGB(255, 255, 255) 
Range("AC6").Interior.Color = RGB(255, 255, 255) 
Range("BH6").Interior.Color = RGB(255, 255, 255) 
Range("DL7").Interior.Color = RGB(255, 255, 255) 
Range("DF9").Interior.Color = RGB(255, 255, 255) 
Range("DF6").Interior.Color = RGB(255, 255, 255) 
Range("DA7").Interior.Color = RGB(255, 255, 255) 
Range("DB23").Interior.Color = RGB(255, 255, 255) 
Range("DF212").Interior.Color = RGB(255, 255, 255) 
Range("DA215").Interior.Color = RGB(255, 255, 255) 
End Sub 
Sub AccountManagement1() 
Range("C7").Interior.Color = RGB(255, 255, 0) 

Range("E6").Interior.Color = RGB(154, 205, 50) 

Range("AE13").Interior.Color = RGB(154, 205, 50) 
Range("AF6").Interior.Color = RGB(154, 205, 50) 
Range("AG13").Interior.Color = RGB(154, 205, 50) 
Range("AI6").Interior.Color = RGB(154, 205, 50) 
Range("AJ13").Interior.Color = RGB(154, 205, 50) 
Range("DA189").Interior.Color = RGB(255, 20, 147) 
Range("DC195").Interior.Color = RGB(255, 20, 147) 
Range("DA192").Interior.Color = RGB(255, 20, 147) 
End Sub 
Sub AccountManagement2() 
Range("C7").Interior.Color = RGB(255, 255, 255) 

Range("AE13").Interior.Color = RGB(255, 255, 255) 
Range("AF6").Interior.Color = RGB(255, 255, 255) 

Range("E6").Interior.Color = RGB(255, 255, 255) 

Range("AG13").Interior.Color = RGB(255, 255, 255) 
Range("AI6").Interior.Color = RGB(255, 255, 255) 
Range("AJ13").Interior.Color = RGB(255, 255, 255) 
Range("DA189").Interior.Color = RGB(255, 255, 255) 
Range("DC195").Interior.Color = RGB(255, 255, 255) 
Range("DA192").Interior.Color = RGB(255, 255, 255) 
End Sub 

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) 
If Target.Address = "$C$6" Then 
    Call AccessControl1 
Else 
    Call AccessControl2 
End If 
If Target.Address = "$C$7" Then 
    Call AccountManagement1 
Else 
    Call AccountManagement2 
End If 
End Sub 
+3

Wo ist der Code? – SilverNak

+0

@SilverNak Ich habe den Code dankeschön für Ihre Hilfe eingefügt –

+0

@ A.eyo - Wenn 'Cell C6' geklickt wird' Sub AccessControl1() 'ändert die Farbe von' Cell E6' in 'RGB (154, 205, 50) 'danach wird' Sub AccountManagement2() 'aufgerufen und die Farbe von' Cell E6' wechselt zurück zu 'RGB (255, 255, 255)' zB 'White'. Was genau versuchst du? – Mrig

Antwort

0

Gemäß dem Kommentar

auf klicken Zelle C6 Anruf AccessControl1 sollte allein ausgeführt und wird, wenn die Zelle C7 geklickt werden Sie von AccountManagement1 gefolgt Anruf AccessControl2 wollen ausführen zu können. Habe ich recht? - Ja

Ihre Worksheet_SelectionChange zu folgender Änderung:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) 
    If Target.Address = "$C$6" Then 
     Call AccessControl1 
    ElseIf Target.Address = "$C$7" Then 
     Call AccessControl2 
     Call AccountManagement1 
    End If 
End Sub 
+0

vielen Dank aber Theres nur dieses kleine Problem 1) als ich versuchte, wieder auf C6 klicken C7 blieb konstant –

+0

@ A.eyo - Was ist das Problem? – Mrig

+0

als ich auf C6 geklickt habe, zeigte es mir immer noch nicht den Cell E6 plus, wenn ich rückwärts klickte (c6, C7, C6 und C6), bemerkte alle C7 Farben, wo genau dort ... normalerweise sollte er weiß sein .. Default das ist Accountmanagement2() .. –