Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
220to224
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
220to224
220to224
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

bedingte Formatierung und Kommentar

bedingte Formatierung und Kommentar
22.02.2003 09:09:43
Peter
Hallo an alle,

in einer Datei habe ich viele bedingte Formatierungen eingebaut.
Kann man, wenn die Bedingung für die Formatierung aktiv ist, es über VBA so steuern das dann automatisch ein Kommentar, mit jeweils verschiedenen Texten in der Zelle eingebaut ist ?!?!
Die jeweiligen Texte müßte ich dann noch auf einer weiteren Tabelle eingeben.


Gruß an alle

Peter

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: bedingte Formatierung und Kommentar
22.02.2003 09:21:33
Ramses
Hallo Peter,

prinzipiell ist mit VBA alles möglich,... wenn du allerdings noch mit EXCEL arbeiten willst, würde ich das lassen.
Du musst nach jeder Zell- oder Wertänderung jede einzelne Zelle mit aufwändigen WENN-Prüfungen checken ob die Bedingte Formatierung zutrifft oder nicht.
Für ein Arbeiten bleibt dann keine Zeit mehr, weil VBA zuviel Rechenzeit verbraucht.

Das hier ist die Prüfung auf das Zutreffen einer Bedingten Formatierung nur für eine einzelne Zelle:


Sub BedingungeFormatierungErfüllt()
'JensF
Dim c As Range
Dim x As Long
Dim Treffer As Boolean
Dim Nummer As Long
Dim F As Double
Set c = ActiveCell
Application.ReferenceStyle = xlR1C1
If c.FormatConditions.Count = 0 Then
    MsgBox "Keine bedingte Formatierung enthalten"
    Exit Sub
End If

For x = 1 To c.FormatConditions.Count
    With c.FormatConditions(x)
    If .Type = 2 Then 'Formelbedingung
        Names.Add Name:="testname", RefersToR1C1Local:=ActiveCell.FormatConditions(x).Formula1
        If [testname] = True Then
            Treffer = True
            Nummer = x
            Names("Testname").Delete
        Else
            Names("Testname").Delete
        End If
        Exit For
    ElseIf .Type = 1 Then '"Wert-Ist" Bedingung
        F = CDbl(.Formula1)
        Select Case .operator
        Case xlBetween
            If c.Value >= F And c.Value <= CDbl(.Formula2) Then
                Treffer = True: Nummer = x: Exit For
            End If
        Case xlEqual
            If c.Value = F Then
                Treffer = True: Nummer = x: Exit For
            End If
        Case xlGreater
            If c.Value > F Then
                Treffer = True: Nummer = x: Exit For
            End If
        Case xlGreaterEqual
            If c.Value > F Then
                Treffer = True: Nummer = x: Exit For
            End If
        Case xlLess
            If c.Value < F Then
                Treffer = True: Nummer = x: Exit For
            End If
        Case xlLessEqual
            If c.Value <= F Then
                Treffer = True: Nummer = x: Exit For
            End If
        Case xlNotBetween
            If c.Value <= F Or c.Value >= CDbl(.Formula2) Then
                Treffer = True: Nummer = x: Exit For
            End If
        Case xlNotEqual
            If c.Value <> F Then
                Treffer = True: Nummer = x: Exit For
            End If
        End Select
    End If
    End With
Next
If Treffer = True Then
    MsgBox "Bedingung " & Nummer & " ist erfüllt"
Else
    MsgBox "keine Bedingung erfüllt"
    Exit Sub
End If
Application.ReferenceStyle = xlA1
End Sub 

     Code eingefügt mit Syntaxhighlighter 1.16


Das ganze musst du für jede einzelene Zelle deines Arbeitsblattes vornehmen und dann auch noch die Kommentartexte ändern.


Gruss Rainer

Anzeige
Re: bedingte Formatierung und Kommentar
22.02.2003 09:21:35
Ramses
Hallo Peter,

prinzipiell ist mit VBA alles möglich,... wenn du allerdings noch mit EXCEL arbeiten willst, würde ich das lassen.
Du musst nach jeder Zell- oder Wertänderung jede einzelne Zelle mit aufwändigen WENN-Prüfungen checken ob die Bedingte Formatierung zutrifft oder nicht.
Für ein Arbeiten bleibt dann keine Zeit mehr, weil VBA zuviel Rechenzeit verbraucht.

Das hier ist die Prüfung auf das Zutreffen einer Bedingten Formatierung nur für eine einzelne Zelle:


Sub BedingungeFormatierungErfüllt()
'JensF
Dim c As Range
Dim x As Long
Dim Treffer As Boolean
Dim Nummer As Long
Dim F As Double
Set c = ActiveCell
Application.ReferenceStyle = xlR1C1
If c.FormatConditions.Count = 0 Then
    MsgBox "Keine bedingte Formatierung enthalten"
    Exit Sub
End If

For x = 1 To c.FormatConditions.Count
    With c.FormatConditions(x)
    If .Type = 2 Then 'Formelbedingung
        Names.Add Name:="testname", RefersToR1C1Local:=ActiveCell.FormatConditions(x).Formula1
        If [testname] = True Then
            Treffer = True
            Nummer = x
            Names("Testname").Delete
        Else
            Names("Testname").Delete
        End If
        Exit For
    ElseIf .Type = 1 Then '"Wert-Ist" Bedingung
        F = CDbl(.Formula1)
        Select Case .operator
        Case xlBetween
            If c.Value >= F And c.Value <= CDbl(.Formula2) Then
                Treffer = True: Nummer = x: Exit For
            End If
        Case xlEqual
            If c.Value = F Then
                Treffer = True: Nummer = x: Exit For
            End If
        Case xlGreater
            If c.Value > F Then
                Treffer = True: Nummer = x: Exit For
            End If
        Case xlGreaterEqual
            If c.Value > F Then
                Treffer = True: Nummer = x: Exit For
            End If
        Case xlLess
            If c.Value < F Then
                Treffer = True: Nummer = x: Exit For
            End If
        Case xlLessEqual
            If c.Value <= F Then
                Treffer = True: Nummer = x: Exit For
            End If
        Case xlNotBetween
            If c.Value <= F Or c.Value >= CDbl(.Formula2) Then
                Treffer = True: Nummer = x: Exit For
            End If
        Case xlNotEqual
            If c.Value <> F Then
                Treffer = True: Nummer = x: Exit For
            End If
        End Select
    End If
    End With
Next
If Treffer = True Then
    MsgBox "Bedingung " & Nummer & " ist erfüllt"
Else
    MsgBox "keine Bedingung erfüllt"
    Exit Sub
End If
Application.ReferenceStyle = xlA1
End Sub 

     Code eingefügt mit Syntaxhighlighter 1.16


Das ganze musst du für jede einzelene Zelle deines Arbeitsblattes vornehmen und dann auch noch die Kommentartexte ändern.


Gruss Rainer

Anzeige
Re: bedingte Formatierung und Kommentar
22.02.2003 09:28:14
Hajo_Zi
Re: bedingte Formatierung und Kommentar
22.02.2003 09:34:50
Peter
Hallo Rainer,

das hat sich wohl, wegen der Rechenzeit des Rechners, erledigt haben.
Aber trotzdem vielen Dank !!!

Gruß Peter

Re: bedingte Formatierung und Kommentar
22.02.2003 09:37:44
Ramses
Hallo Hajo,

Ich weiss, das sollte auch nur ein Beispiel sein für die Prüfung in einer einzigen Zelle.
Das ganze auf eine Tabelle anzuwenden ist meines Erachtens nur mit einem Aufwand möglich, der eine SUN-Hochleistungs Workstation und viel Zeit zum Programmieren und Testen voraussetzt.
Ganz zum Schweigen vom Anpassen des Codes, wenn eine Bedingung mal geändert wurde.

Gruss Rainer

Re: bedingte Formatierung und Kommentar
22.02.2003 09:37:45
Ramses
Hallo Hajo,

Ich weiss, das sollte auch nur ein Beispiel sein für die Prüfung in einer einzigen Zelle.
Das ganze auf eine Tabelle anzuwenden ist meines Erachtens nur mit einem Aufwand möglich, der eine SUN-Hochleistungs Workstation und viel Zeit zum Programmieren und Testen voraussetzt.
Ganz zum Schweigen vom Anpassen des Codes, wenn eine Bedingung mal geändert wurde.

Gruss Rainer

Anzeige
Re: bedingte Formatierung und Kommentar
22.02.2003 09:40:49
Hajo_Zi
Hallo Rainer

teste es mal nur an Zelle A1. Es kommt die Meldung "keine Bedingung erfüllt" obwohl B2=3??

Gruß Hajo

Re: bedingte Formatierung und Kommentar
22.02.2003 09:48:07
Ramses
Hallo Hajo,

ich denke das muss ich mal, wenn ich Zeit habe :-), anpassen.
Er prüft in diesem Beispiel nur ob die 1. Bedingung erfüllt worden ist, weitere Bedingungen werden nicht geprüft.

Gruss Rainer

Re: bedingte Formatierung und Kommentar
22.02.2003 15:39:56
Hajo_Zi
Hallo Rainer

ich habe mir den Code auch noch nicht genauer angesehen, aber ich hätte Vermutet das er mit der Zeile
For x = 1 To c.FormatConditions.Count
die 3 Bedingungen durchgeht.

Gruß Hajo

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige