Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema RefEdit
BildScreenshot zu RefEdit RefEdit-Seite mit Beispielarbeitsmappe aufrufen

Bereich Färben wenn...

Betrifft: Bereich Färben wenn... von: Patrick
Geschrieben am: 24.07.2013 11:29:58

Guten Tag,

ich habe folgendes Problem:

Ich habe einen Bereich, in den entweder X oder Y eingetragen wird.
Wird nun ein X eingetragen, so soll sich eine bestimmt Zelle rot färben.
Wird ein Y eingetragen, soll sich diese Zelle blau färben.

Beispiel:

in Range("A1:D4") wird ein Y eingetragen und Range("C1") soll sich blau färben.
Das Y bleibt in der Range stehen und ein X wird in eine andere Zelle aber noch in der Range("A1:D4")eingetragen. Dann soll sich Range("C1") blau färben.

Gruß
Patrick

  

Betrifft: bedingte Formatierung. owT von: Rudi Maintaire
Geschrieben am: 24.07.2013 11:35:00




  

Betrifft: AW: bedingte Formatierung. owT von: Patrick
Geschrieben am: 24.07.2013 11:37:09

Mit der "bedingten Formatierung" habe ich es nicht hinbekommen

Gruß


  

Betrifft: AW: bedingte Formatierung. owT von: Rudi Maintaire
Geschrieben am: 24.07.2013 11:45:50

Hallo,
Dann soll sich Range("C1") blau färben.
Ist doch schon blau.

Lies mal deine Anfrage.

Gruß
Rudi


  

Betrifft: AW: bedingte Formatierung. owT von: Patrick
Geschrieben am: 24.07.2013 11:48:05

Ups, entschuldigung.

Wenn ein X eingetragen wird soll es sich rot färben.

Gruß
Patrick


  

Betrifft: AW: bedingte Formatierung. owT von: Rudi Maintaire
Geschrieben am: 24.07.2013 11:52:24

Hallo,
so?

ABCD
1    
2    
3y   
4  x 

Zellebedingte Formatierung...Format
C11: =ZÄHLENWENN($A$1:$D$4;"X")abc
C12: =ZÄHLENWENN($A$1:$D$4;"Y")abc


Gruß
Rudi


  

Betrifft: AW: bedingte Formatierung. owT von: Patrick
Geschrieben am: 24.07.2013 12:41:26

Wo muss ich das denn eingeben?

Unter "Bedingte Formatierung" sieht das Ganze anders aus.

Gruß
Patrick


  

Betrifft: AW: bedingte Formatierung. owT von: Rudi Maintaire
Geschrieben am: 24.07.2013 12:46:25

Hallo,
neue Regel, Formel zur Ermittlung....

Gruß
Rudi


  

Betrifft: AW: bedingte Formatierung. owT von: Patrick
Geschrieben am: 24.07.2013 12:59:49

Ok,danke für deine Mühe.

Das Problem ist, wenn ich nun ein X eintrage, dann wird es rot. Soweit schonmal prima. Trage ich nun ein Y ein bleibt die Zelle aber rot und wird nicht blau. Ich habe vielleicht meine Frage falsch gestellt.
Die Farbe soll sich immer dem entsprechend ändern, welcher buchstabe zuletzt eingetragen wurde.

Gruß
Patrick


  

Betrifft: geht nur per VBA owT von: Rudi Maintaire
Geschrieben am: 24.07.2013 13:03:58




  

Betrifft: AW: geht nur per VBA owT von: Patrick
Geschrieben am: 24.07.2013 13:29:26

Das habe ich mir auch gedacht. Habe es auch versucht, aber ohne Erfolg.

Gruß
Patrick


  

Betrifft: AW: geht nur per VBA owT von: Matze Matthias
Geschrieben am: 24.07.2013 13:45:54

Patric,
sind da nur die Beiden Einträge gemeint "x" u. "y" oder gibt es noch mehr?
Du solltest endlich mal schreiben was genau du machen willst

In VBA wäre es mit Private Sub Worksheet Change(ByVal Target As Range) in
der entsprechenden Tabelle zu lösen.

Matze


  

Betrifft: AW: geht nur per VBA owT von: Patrick
Geschrieben am: 24.07.2013 13:53:55

Wie am Anfang geschildert:

"Ich habe folgendes Problem:

Ich habe einen Bereich, in den entweder X oder Y eingetragen wird.
Wird nun ein X eingetragen, so soll sich eine bestimmt Zelle rot färben.
Wird ein Y an anderer Stelle eingetragen, soll sich diese Zelle blau färben." Wird nun wieder ein X an anderer Stelle eingetragen, soll sich die Zelle erneut rot färben.

Da das ganze anscheinend mit der "bedingten Formatierung" nicht funktioniert wurde ich auf VBA hingewiesen.

Ich habe meine Versuche in VBA leider wieder gelöscht. Ich werde morgen nochmal versuchen es in VBA zu schreiben und es dann hier hochladen.

Gruß
Patrick


  

Betrifft: AW: bedingte Formatierung. owT von: Matze Matthias
Geschrieben am: 24.07.2013 12:48:24

Hallo Patrik,
und wenn gar nix geht, stell deine Datei hier ein, aber du solltest schon den Umgang damit üben,
wenn du später was erreichen möchtest.
Matze


  

Betrifft: Geht auch m.BedingtFormat u.etwas ... von: Luc:-?
Geschrieben am: 24.07.2013 19:55:47

…VBA-Unterstützung, Leute;
1. Name definieren für das betroffene Blatt, zB letztEintrag bezogen auf ="".
2. BedingtFormat/6.MenüPkt: Bedingg1→ =letztEintrag="X" →Rot; Bedingg2→ =letztEintrag="Y" →Blau
3. Ereignisprozedur Worksheet_Change wie üblich anlegen → PgmKörper:

    Const lEintrN$ = "letztEintrag", relBerN$ = "A1:D4", sigSymb$ = "XY"
    Static adVorgg$
    Dim VorgPos As Long, VorgAdr As Variant
    If Not Intersect(Target, Me.Range(relBerN)) Is Nothing Then
        If Target.Count = 1 Then
            If Not IsEmpty(Target) Then
                If CBool(InStr(sigSymb, Target)) Then _
                    adVorgg = LTrim(adVorgg & " " & Target.Address)
            ElseIf adVorgg <> "" Then
                VorgAdr = Split(adVorgg)
                VorgPos = WorksheetFunction.Match(Target.Address, VorgAdr, 0) - 1
                If VorgPos > -1 Then VorgAdr(VorgPos) = ""
                adVorgg = Trim(Join(VorgAdr))
            End If
            VorgAdr = Split(adVorgg): Me.Names(lEintrN).Value = "=" & VorgAdr(UBound(VorgAdr))
        ElseIf IsEmpty(Target.Cells(1)) Then
            adVorgg = ""
        End If
    End If
Mit Auswahl mehrerer Zellen, deren 1. nicht leer ist, und Löschen aller wird die PgmVariable adVorgg geleert, ansonsten bleibt sie zwischen den AutoAufrufen erhalten.
Gruß Luc :-?


  

Betrifft: Etwas optimalere PgmVariante ... von: Luc:-?
Geschrieben am: 24.07.2013 20:55:17

Private Sub Worksheet_Change(ByVal Target As Range)
    Const lEintrN$ = "letztEintrag", relBerN$ = "A1:D4", sigSymb$ = "XY"
    Static adVorgg$
    Dim isLeerAdV As Boolean, VorgPos As Long, ZielAdr$, VorgAdr As Variant
    On Error GoTo fx
    If Not Intersect(Target, Me.Range(relBerN)) Is Nothing Then
        If Target.Count = 1 Then
            ZielAdr = Target.Address: Let isLeerAdV = adVorgg = ""
            If Not isLeerAdV Then
                VorgAdr = Split(adVorgg)
                On Error Resume Next
                VorgPos = WorksheetFunction.Match(ZielAdr, VorgAdr, 0)
                On Error GoTo fx
                If CBool(VorgPos) Then _
                    VorgAdr(VorgPos - 1) = "": adVorgg = Trim(Join(VorgAdr))
            End If
            If Not IsEmpty(Target) Then
                If CBool(InStr(sigSymb, Target)) Then _
                    adVorgg = adVorgg & IIf(isLeerAdV, "", " ") & ZielAdr
            End If
            VorgAdr = Split(adVorgg)
            Me.Names(lEintrN).Value = "=" & VorgAdr(UBound(VorgAdr))
        ElseIf IsEmpty(Target.Cells(1)) Then
            adVorgg = ""
        End If
    End If
    Exit Sub
fx: MsgBox Err.Description, vbCritical, "InternFehler " & Err.Number
End Sub
Luc :-?


  

Betrifft: AW: Bereich Färben wenn... von: Rudi Maintaire
Geschrieben am: 24.07.2013 13:58:21

Hallo,
so?

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("A1:D4")) Is Nothing Then
    Select Case Target
      Case "X": Cells(1, 3).Interior.Color = RGB(255, 0, 0)
      Case "Y": Cells(1, 3).Interior.Color = RGB(0, 0, 255)
      Case ""
        Select Case True
          Case WorksheetFunction.CountIf(Range("A1:D4"), "X") = 0 And _
               WorksheetFunction.CountIf(Range("A1:D4"), "Y") = 0
            Cells(1, 3).Interior.Color = xlNone
          Case WorksheetFunction.CountIf(Range("A1:D4"), "X") > 0 And _
               WorksheetFunction.CountIf(Range("A1:D4"), "Y") = 0
            Cells(1, 3).Interior.Color = RGB(255, 0, 0)
          Case WorksheetFunction.CountIf(Range("A1:D4"), "X") = 0 And _
               WorksheetFunction.CountIf(Range("A1:D4"), "Y") > 0
            Cells(1, 3).Interior.Color = RGB(0, 0, 255)
        End Select
    End Select
  End If
End Sub

Gruß
Rudi


 

Beiträge aus den Excel-Beispielen zum Thema "Bereich Färben wenn..."