2016-07-12 9 views
0

Ich erstelle ein Formular, um Kontoinformationen und Bestellstatus einzugeben. Jede Zeile muss sich ändern, basierend auf dem Wert einer der Zellen in derselben Zeile, in dieser Fallzelle "H". Ich kann dies leicht mit bedingter Formatierung erreichen, aber ich denke, das macht die Datei größer als Programmiercode. Ich habe einige Optionen ausprobiert, aber ich kann in diesem Moment sagen, dass ich sehr verloren bin. Ich füge ein Beispiel an, was ich erreichen möchte. Ich weiß nicht, was ich zu diesem Zeitpunkt tun soll. Wenn mir jemand helfen kann, würde ich das sehr schätzen.Bedingte Formatierung VBA

enter image description here

+0

[Geschachtelt wenn/Sonst/Ende Wenn in Select Case] ​​(http://stackoverflow.com/questions/29656818/nested-if-else-end-if-within-select-case/29658203#29658203) – Jeeped

Antwort

1

A Worksheet_Change Ereignis macro¹ beschäftigt sich mit, na ja, Änderungen auf dem Arbeitsblatt.

Option Explicit 

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Not Intersect(Target, Columns("H")) Is Nothing Then 
     On Error GoTo bm_Safe_Exit 
     Application.EnableEvents = False 
     Dim trgt As Range 
     For Each trgt In Intersect(Target, Columns("H")) 
      Select Case LCase(trgt.Value2) 
       Case "credit" 
        Cells(trgt.Row, "A").Resize(1, 12).Interior.ColorIndex = 45 
       Case "completed" 
        Cells(trgt.Row, "A").Resize(1, 12).Interior.ColorIndex = 10 
       Case Else 
        Cells(trgt.Row, "A").Resize(1, 12).Interior.Pattern = xlNone 
      End Select 
     Next trgt 
    End If 
bm_Safe_Exit: 
    Application.EnableEvents = True 
End Sub 

H_credit_completed


¹ Ein Ereignis Makro auf einem Arbeitsblatt oder Arbeitsmappe Codeblatt gehört; kein Modul-Codeblatt. Für ein Arbeitsblatt-Codeblatt klicken Sie mit der rechten Maustaste auf das Namensregister des Arbeitsblatts und wählen Sie Code anzeigen. Wenn der VBE geöffnet wird, wird das Arbeitsblatt-Codeblatt (normalerweise wie etwa Book1 - Sheet1 (Code) im Vordergrund bezeichnet). Fügen Sie den Code ein und nehmen Sie Anpassungen vor. Tippen Sie dann auf Alt + Q, um zum Arbeitsblatt zurückzukehren.

+0

Vielen Dank für Ihre Antwort. Ich denke, dass ich etwas falsch mache, weil ich die Farbe der Reihe nicht ändere. Was ich versuche, ist, den Farbbereich von "A" zu "L" basierend auf dem Wert von "H" zu ändern und es sollte für die gesamte Arbeitsmappe Zeile für Zeile gelten. – rogiefc

+0

Ich habe ein Bild und etwas Grundlegendes hinzugefügt Anweisungen zur Implementierung des Codes. Weitere Informationen erhalten Sie, indem Sie auf den Link klicken, den ich in der ursprünglichen Antwort angegeben habe. – Jeeped

+0

Jetzt bekomme ich es, ich habe den Code implementiert und funktioniert wie ein Zauber. Danke, ich schätze deine Zeit, mir zu helfen. – rogiefc