Office: Registerfarbe nach Bedingung per VBA verändern

Helfe beim Thema Registerfarbe nach Bedingung per VBA verändern in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hi Thomas, wenn du eine bestimmte Farbe verwenden willst, formatiere einfach eine Zelle entsprechend - dann kannst du dir mit der Codezeile: MsgBox... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Jandb1980, 12. September 2014.

  1. Beverly
    Beverly Erfahrener User

    Registerfarbe nach Bedingung per VBA verändern


    Hi Thomas,

    wenn du eine bestimmte Farbe verwenden willst, formatiere einfach eine Zelle entsprechend - dann kannst du dir mit der Codezeile:

    Code:
    MsgBox ActiveCell.Interior.Color

    die betreffende Color-Nummer ausgeben lassen.


    Den Rest habe ich nicht verstanden - was meinst du mit "diese Monats Funktion"? In meinem Code gibt es keine, da wird nur das Jahr ausgelesen.

    Bis später,
    Karin
     
    Beverly, 12. Juli 2018
    #16
  2. Exl121150 Erfahrener User
    Hallo @Beverly,
    auf Seite 1 von 2 in diesem Thread verwendete ich folgende monatsabhängige Call-Back-Funktion. Das darin enthaltene FOR-Statement (For I% = 1 To 12) dürfte wahrscheinlich auch die Ursache für die fehlerhafte Anwendung desselben auf Seite 2 (For bytZaehler = 0 To 11) gewesen sein.
    In diesem Makro unten verwendete ich 2 verschiedene Properties (.ColorIndex und .Color) mit den jeweils passenden Farbkonstanten, wobei die Konstante "vbGreen" den gleichen Wert liefert wie die Funktion "RGB(0,255,0)" nämlich 255*256 = 65280 = &H00FF00
    Die ColorIndex-Konstante "xlColorIndexNone" besitzt dagegen den dezimalen Wert -4142 (bzw. hexadez. &HEFD2).
    Vielleicht wurden beide vermischt verwendet, sodass sie nicht richtig funktionierten.

    Code:
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
      Dim Rg As Range
      Dim Monate As Variant, I%
      Monate = Array("", "Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez")
      For I% = 1 To 12
        If Sh.Name = Monate(I%) Then
          'Blattname ist in der Monate-Liste enthalten -> Bereich B10:B40 prüfen
          Set Rg = Sh.Range("B10:B40").Find(What:=Date, LookIn:=xlValues, LookAt:=xlWhole)
          If Rg Is Nothing Then
            'Suchvorgang erfolglos:
            [COLOR="#0000CD"]Sh.Tab.ColorIndex = xlColorIndexNone[/COLOR]
          Else
            'HEUTE() wurde im Bereich B10:B40 gefunden -> BlattTab einfärben
            [COLOR="#0000CD"]Sh.Tab.Color = vbGreen[/COLOR]
          End If
          Exit Sub
        End If
      Next I
    End Sub
     
    Exl121150, 12. Juli 2018
    #17
  3. Moin!
    Mal eine Ergänzung, wie man die Arrays bequemer füllen kann.
    Statt
    Code:
      Dim Monate As Variant
      Monate = Array("Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", _
        "Jul", "Aug", "Sep", "Okt", "Nov", "Dez")
    geht sehr viel einfacher:
    Code:
    Dim Monate As Variant
      Monate = Application.GetCustomListContents(7)
    
    Zu beachten ist jedoch, dass das erste Array Null- (For i = 0 To 11), das Zweite jedoch Eins-basiert (For i = 1 To 12) ist.

    Das Jahresarray
    Code:
    arrJahre = Array("2001", "2002", "2003", "2004", "2005", "2005", "2006", "2007", "2008", "2009", "2010", _
       "2011", "2012", "2013", "2014", "2015", "2016", "2017", "2018", "2019", "2020", _
       "2021", "2022", "2023", "2024", "2025")
    füllt man sehr viel einfacher mit
    Code:
    Dim arrJahre As Variant
      arrJahre = [row(2001:2025)]
    
    oder auch mit
    Code:
    Dim arrJahre As Variant
      arrJahre = Evaluate("row(2001:2025)")
    
    Beachte, dass hier ein zweidimensionales Array(1 To 25, 1 To 1) erzeugt wird!

    Gruß Ralf
     
    Zuletzt von einem Moderator bearbeitet: 15. Juli 2018
Thema:

Registerfarbe nach Bedingung per VBA verändern

Die Seite wird geladen...
  1. Registerfarbe nach Bedingung per VBA verändern - Similar Threads - Registerfarbe Bedingung VBA

  2. WENN-Funktion mit mehreren Bedingungen

    in Microsoft Excel Hilfe
    WENN-Funktion mit mehreren Bedingungen: Guten Morgen, ich würde gerne eine Funktion erstellen, die die Werte einer Zelle untersucht. Ist der Wert unter 5, so soll ein "nein" erscheinen und das Feld rot werden Ist der Wert zwischen 5...
  3. Registerfarbe ohne VBA?

    in Microsoft Excel Hilfe
    Registerfarbe ohne VBA?: Hallo an alle, ich muss mich mal wieder melden. Ich habe ca. 15 Tabellenblätter. In jedem ist eine unterschiedlich lange Tabelle in denen Inventar erfasst wird. Ich habe eine Zählfunktion in der...
  4. Registerfarbe an Wochenende anpassen

    in Microsoft Excel Hilfe
    Registerfarbe an Wochenende anpassen: Sehr geehrte Forenmitglieder, ich arbeite viel mit Excel und nähere mich langsam der VBA-Programmierung (Grundlagen). Ich erstellte eine Monatsdatei mit 31 Tagestabellen (z. B. 01 für 01.05., 02...
  5. Excel Registerfarbe auslesen

    in Microsoft Excel Hilfe
    Excel Registerfarbe auslesen: Hallo, ich möchte gerne in einem Tabellenblatt die einzelnen Tabellenblätter als Inhaltsverzeichnis darstellen, was bereits gut funktioniert. Die Tabellenblätter (Register) haben unterschiedliche...
  6. Registerfarbe nicht änderbar

    in Microsoft Excel Hilfe
    Registerfarbe nicht änderbar: Hallo Office Gemeinde, ich habe ein ziemlich kniffeliges Problem mit Excel 2007 zu lösen. In einem Dokument kann man die Registerfarbe der Tabellenblätter nicht ändern. Die Option ist ausgegraut...
  7. Registerfarbe nach Bedingung per VBA verändern

    in Microsoft Excel Hilfe
    Registerfarbe nach Bedingung per VBA verändern: Hallo Community, ich habe schon seit längeren ein Problem bei einem Formular welches über Excel erstellt wurde. Es besteht aus einem Deckblatt und ca. 7 weiteren Registerblättern indem...
  8. Ändern der Registerfarbe

    in Microsoft Excel Hilfe
    Ändern der Registerfarbe: Hallo wie kann ich die Farbe der Register ändern? Die unterscheidung Lichtgrau und Weiss bei Nichtmarkiert und Martkiert ist unter bestimmten Lichtverhältnissen schwer erkennbar - und führt...
  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