Office: [Excel2k] Ampelschaltung mit einer Eingabe

Helfe beim Thema [Excel2k] Ampelschaltung mit einer Eingabe in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Huhu, ich schon wieder und meine Wünsche werden komplizierter. Ich habe in diversen Excel-Tabellen eine Art Statusampel mit den Farben rot, gelb und... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von magic59, 3. April 2008.

  1. magic59 Erfahrener User

    [Excel2k] Ampelschaltung mit einer Eingabe


    Huhu, ich schon wieder und meine Wünsche werden komplizierter.

    Ich habe in diversen Excel-Tabellen eine Art Statusampel mit den Farben rot, gelb und grün. Aufgebaut ist sie aus 3 nebeneinanderliegenden Zellen, die jeweils mit 1 auf die jeweilige Farbe geschaltet werden und mit 0 wieder auf weiss. D.h. ein Statuswechsel bedingt zwei Eingaben, nämlich einmal die 1 auf den neuen Status sowie die 0, um den alten Status wieder weiss zu machen. Nun würde ich das gerne automatisieren.
    Die Eingabe der 1 in einem der drei Zellen soll die andere Zellen automatisch auf weiss setzen. Mit der bedingten Formatierung komme ich nicht so recht weiter, da ich da ja nicht die Farbe anderer Zellen ändern kann, als die jeweils aktive.

    Vielleicht noch mal in Pseudocode:

    Code:
         IF Feld A1 = 1 THEN Feld A2=0 AND A3 = 0
    ELSE IF Feld A2 = 1 THEN Feld A1=0 AND A3 = 0
    ELSE IF Feld A3 = 1 THEN Feld A1=0 AND A1 = 0
    FI
    
     
    magic59, 3. April 2008
    #1
  2. magic59 Erfahrener User
    Ich habe es alleine hinbekommen, aber um die zahlreichen Experten hier trotzdem anzuzapfen, würde mich interessieren, ob ich den Code nicht deutlich schlanker bekomme:

    So sieht mein Code momentan aus:

    Teil 1:
    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
    
        ' Variablendeklaration
        Dim Bereich As Range, ampelBereich As Range, Zelle As Range
    
        ' Abschalten der Excel-Events
        Application.EnableEvents = False
    
        ' Definition des jeweils betreffenden Bereiches
        ' und Aufruf der Umwandelfunktion
        Set Bereich = Range("C8:C47")
        Call toUppercase(Bereich, Target)
        
        Set ampelBereich = Range("I8:K47")
        Call schalteAmpel(ampelBereich, Target)
        
        ' Wiedereinschalten der Excel-Events
        Application.EnableEvents = True
    
    End Sub
    
    Teil 2 (Ampelschaltung):
    Code:
    Private Sub schalteAmpel(Bereich As Range, Target As Range)
        
        Dim bereichGruen As Range, bereichGelb As Range, bereichRot As Range
        
        Set bereichGruen = Range("I8:I48")
        Set bereichOrange = Range("J8:J48")
        Set bereichRot = Range("K8:K48")
    
        If Not Intersect(Target, Bereich) Is Nothing Then
            If Not Intersect(Target, bereichGruen) Is Nothing Then
                Select Case (Target.Value)
                    Case "1":
                        Target.Cells.Interior.ColorIndex = 4 'gruen
                        Target.Cells.Font.ColorIndex = 4
                        Target.Offset(0, 1).Cells.Interior.ColorIndex = 2
                        Target.Offset(0, 1).Font.ColorIndex = 2
                        Target.Offset(0, 2).Cells.Interior.ColorIndex = 2
                        Target.Offset(0, 2).Font.ColorIndex = 2
                End Select
            End If
            
            If Not Intersect(Target, bereichOrange) Is Nothing Then
                Select Case (Target.Value)
                    Case "1":
                        Target.Cells.Interior.ColorIndex = 45 'orange
                        Target.Cells.Font.ColorIndex = 45
                        Target.Offset(0, -1).Cells.Interior.ColorIndex = 2
                        Target.Offset(0, -1).Font.ColorIndex = 2
                        Target.Offset(0, 1).Cells.Interior.ColorIndex = 2
                        Target.Offset(0, 1).Font.ColorIndex = 2
                End Select
            End If
            
            If Not Intersect(Target, bereichRot) Is Nothing Then
                Select Case (Target.Value)
                    Case "1":
                        Target.Cells.Interior.ColorIndex = 3 'rot
                        Target.Cells.Font.ColorIndex = 3
                        Target.Offset(0, -1).Cells.Interior.ColorIndex = 2
                        Target.Offset(0, -1).Font.ColorIndex = 2
                        Target.Offset(0, -2).Cells.Interior.ColorIndex = 2
                        Target.Offset(0, -2).Font.ColorIndex = 2
                End Select
            End If
        End If
    
    End Sub
    
     
    magic59, 3. April 2008
    #2
  3. schatzi Super-Moderator
    Hallo!
    Das ist nicht richtig!

    Markiere A2 und gib bei der bedingten Formatierung dies ein:
    Formel ist: =A1=1
    (Format: grün)

    Nun färbt sich A2 grün, wenn in A1 eine Eins steht.
     
    schatzi, 3. April 2008
    #3
  4. magic59 Erfahrener User

    [Excel2k] Ampelschaltung mit einer Eingabe

    Hmm, ich breche mir hier mit meinen rudimentären VBA-Kenntnissen einen ab, dabei ist es so einfach.

    Eigentlich müsste ich nun wieder die ASCII-Rosen bringen, aber ich belasse es mal bei einem fetten Danke!
     
    magic59, 3. April 2008
    #4
Thema:

[Excel2k] Ampelschaltung mit einer Eingabe

Die Seite wird geladen...
  1. [Excel2k] Ampelschaltung mit einer Eingabe - Similar Threads - Excel2k Ampelschaltung Eingabe

  2. Während der Eingabe überprüfen ob Zahl oder Text

    in Microsoft Access Hilfe
    Während der Eingabe überprüfen ob Zahl oder Text: Hallo, wenn ich in einem Zahlenfeld einen Text eingebe erfolgt folgende Meldung [ATTACH] Wie kann ich die Meldung abfangen um eine eigene Meldung auszugeben? Das Zahlenfeld ist mit 0 vor belegt...
  3. Inhaltssteuerelemente - Textfarbe nach (!) erfolgter Eingabe

    in Microsoft Word Hilfe
    Inhaltssteuerelemente - Textfarbe nach (!) erfolgter Eingabe: Guten Tag miteinander, folgendes Problem: Ich habe mehrere Word Dokumente, wo Inhaltssteuerelemente eingefügt wurden (Text, Dropdownfelder und Datumsfelder). Die jeweilige "Initialbefüllung" ist...
  4. Eingaben in mehreren Spalten und Zeilen per Knopfdruck löschen

    in Microsoft Excel Hilfe
    Eingaben in mehreren Spalten und Zeilen per Knopfdruck löschen: Hallo zusammen, Ich habe einen Excel Kalkulater gebaut mit welchem man bestimmte Werte (tun hier nichts zur Sache) berechnen kann. Nun ist es so, dass die beiden Tabellenblätter für die...
  5. gezielt Daten aufzählen und zuordnen

    in Microsoft Excel Hilfe
    gezielt Daten aufzählen und zuordnen: Hallo, ich hab schon wieder ein Problemchen. Ich habe eine Tabelle (siehe Anhang) auf der unter "Eingabe" jeder Person bestimmte Tätigkeiten zugeordnet werden. Dabei werden nur die Tätigkeiten,...
  6. Über Eingabefelder bestimmte Zellen füllen, wohl VBA

    in Microsoft Excel Hilfe
    Über Eingabefelder bestimmte Zellen füllen, wohl VBA: Hallo, suche eine Möglichkeit wenn ich am Monatsende den Stromzählerstand ablese und Datum in C1 und Zählerstand in C2 eintrage, das dann C1 (Datum) in B27 übertragen wird. Außerdem Wert in C2...
  7. Datum nach Eingabe automatisch in Zelle einfügen

    in Microsoft Excel Hilfe
    Datum nach Eingabe automatisch in Zelle einfügen: Hallo Spezialisten, ich habe hier einen Code gefunden, der für mich fast perfekt ist. Private Sub Worksheet_Change(ByVal Target As Range) 'Quelle: Ransi If Intersect(Target, Range("A1:A10"))...
  8. [Excel2k] Change-Event feuern

    in Microsoft Excel Hilfe
    [Excel2k] Change-Event feuern: Huhu, ich habe schon wieder ein blödes Problem. Folgende Situation: Ich habe eine Tabelle (nennen wir sie Tabelle1), in welcher in einer Spalte bestimmte Werte eingegeben werden können....
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden