Clever-Excel-Forum

Normale Version: Bedingte Formatieung VBA
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Ich habe in Excel alle Spiele der Fussball-Bundesliga seit 1963 erfasst (jede Saison ein Blatt). Ich habe jedem Verein einen Namen zugewiesen  (z.B =FCB für FC Bayern München). Das funtioniert auch sehr gut. Des Weiteren habe ich über das Menü "Bedingte Formatierung" jedem Verein die gewünschte Formatierung zugewiesen, jedoch von ich das sehr aufwendig. Deshalb wollte ich eine äquivatente Formel erstellen, der ich den Namen des Vereins (z.B. =FCB), die Anwendungsbereiche, und die jeweiligen RGB-Werte für Vorder- und Hintergrund übergebe. Da die Gesamtdatei etwas mehr als 7 MB umfasst, kann ich sie nicht hochladen.
Hallöchen,

also, wenn Du eine Beispieldatei statt mit 59 Blättern für 59 Jahre nur mit einem hoch lädst, ist das sicher deutlich weniger als 7 MB. Die Helfer wären sicher nicht begeistert, wenn da zuviel drin steht.
Wenn es bis jetzt und sicher auch zukünftig mit einer bedingten Formatierung funktioniert, sollte man daran eventuell nur dann was ändern, wenn man dabei was hinsichtlich der Programmierung lernen will, sodass man später auch Anpassungen selbst durchführen kann. Da kann und sollte man durchaus mit kleinen Schritten und mal unabhängig von der Liste anfangen. Kannst Du z.B. ein Makro schreiben um mit dem Farbcode 223;33;39 irgendeine beliebige Zelle einzufärben? ...
Hier mal ein Blatt der Datei
Hi,

komplett ohne bed.Form., dafür mit einem Blatt "Vereine", auf dem die Kürzel und Farben in der intelligenten Tabelle "Vereine" festgelegt sind.

Im Blatt Tabelle1 ist folgender Code hinterlegt:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
Dim Nr As Variant
For Each Zelle In Target.Cells
    Nr = Application.XMatch(Zelle, Tabelle2.Range("Vereine[Kürzel]"), 0, 2)
    If IsError(Nr) Then
        Zelle.Interior.ColorIndex = xlNone
        Zelle.Font.ColorIndex = xlAutomatic
    Else
        With Tabelle2.Range("Vereine[Kürzel]").Cells(Nr)
            Application.EnableEvents = False
            Zelle = .Offset(, 1)
            Application.EnableEvents = True
            Zelle.Interior.Color = .Interior.Color
            Zelle.Font.Color = .Font.Color
        End With
    End If
Next Zelle
End Sub
Der sorgt dafür, dass bei einer Eingabe in einer beliebigen Zelle geprüft wird, ob die Eingabe in der Spalte Kürzel in der alphabetisch sortierten intelligenten Tabelle gefunden wird. Falls ja, wird das Kürzel durch den langen Namen ersetzt und die Farben entsprechend eingestellt. Falls nein, werden die Standard-Farben (schwarze Schrift, kein Hintergrund) gesetzt und der Eintrag selbst nicht verändert.
Fünktioniert bei mir leider nicht, da immer #BEZUG als Fehler Kommt
In meiner Datei? Kann ich nicht nachvollziehen!
Moin,

#BEZUG Fehler gibt es in VBA nicht. Das ist ein Fehlerwert, der in einer Formel gegeben wird. Helmuts Programm hat aber mit Formeln nix zu tun.

Viele Grüße
derHöpp
Hi,

wenn ich die Datei starte und irgendwo ein Kürzel eingebe, kommt diese Fehlermeldung
[attachment=47415]
in dieser Zeile:
Code:
Nr = Application.XMatch(Zelle, Tabelle2.Range("Vereine[Kürzel]"), 0, 2)

Vielleicht meint er das?

Gruß Ralf
Hi,

auch das kann ich in meiner Datei nicht nachvollziehen. Wenn ich irgendwo "BVB" oder "bvb" eingebe, kommt "BORUSSIA DORTMUND" und die Zelle wird Orange hinterlegt.

Wie schaffst du es hier einen Fehler zu provozieren? Kann es sein, dass dein Excel kein Application.XMatch bzw. =XVERGLEICH() kennt?
Hi,

ok, alles klar, das war es. Auf meinem heute benutzten Rechner war Office 2016 drauf.

auf dem 365er funktioniert es.

Gruß Ralf
Seiten: 1 2