Clever-Excel-Forum

Normale Version: Bedingte Formatierung schützen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Ich benötige Hilfe bei der bedingten Formatierung.

Ich prüfe mit der Vergleichsformel, ob die Eingaben in Spalte D und E zulässig sind. L
Wenn ich jetzt aber die Werte hineinkopiere und nicht Inhalte Einfügen wähle, wird die bed. Formatierung zerstört. Blattschutz hilft nicht.

Folgende Lösungswege fallen mir ein. :

--> Kann man die bed. Formatierung fixieren? Quasi nicht überschreibbar machen? (Wäre ideal)

--> Kann die einmal erstellte bed. Formatierung falls sie per kopieren verändert wurde beim Neustart der Tabelle auf die vorherigen Werte zurückgesetzt werden?

--> Letzte und unelegante Variante: Kann man STRG-C bez. die normale EInfügenfunktion vorübergehend sperren?

Leider sind keine VBA Kenntnisse vorhanden. Alles, was ich bisher gemacht habe, habe ich mir ergoogelt, bzw. durch Mithilfe des Forums erlernt.
Auch Hallo,

füge nach dem Kopieren nur die Werte ein, dann bleibt deine bF erhalten.
So wirds momentan gemacht.
Leider hält sich nicht jeder daran, der mit der Liste arbeiten muss. Demnach darf ich 1x die Woche die bed. Formatierungen wiederherstellen. Dies versuche ich zu umgehen. Deswegen suche ich eine Lösung, womit man es nicht falsch machen kann. :)

Grüße David
Hi,

so auf die Schnelle fiele mir nur das ein:

Kopie der Tabelle erstellen und alle Daten löschen.
Im Bedarfsfall den gesamten Bereich markieren und mit Format übertragen alle Formatierungen wiederherstellen.
oder per VBA die BF prüfen und ggf wiederherstellen.
Hallöchen,

für die Formel könntest Du ggf. INDIREKT verwenden, z.B.

=ZÄHLENWENN(INDIREKT("A1:A10");"A")>1

DAs verhindert zumindest, dass sich die Formel der Bedingung ändert, nicht aber der betreffende Bereich ("Wird angewendet auf")
Ich habe INDIREKT mal probiert. =VERGLEICH(INDIREKT("D2");$A$2:$A$8;0) Was natürlich zur Folge hat, dass ich die Formel nichtmehr runterziehen oder auf die gesamte Spalte anwenden kann. D.h. ich müsste für jede Zelle eine neue Formel schreiben. Wenn ich die Zelle aber kopiere, kommt die bedingte Formatierung mit.

Leider kann ich kein VBA schreiben. Ich habe jetzt mal in ein leeres Blatt per VBA Aufzeichnung alle bed. Formatierungen gemacht, leider funktioniert das so nicht.

Hat noch jemand eine Idee?

Grüße David
Hallo,

... und wie aktuell ist die Beispieldatei aus dem ersten Beitrag jetzt noch?

... und vielleicht, Du ahnst es wahrscheinlich schon, ...
Ich habe jetzt mal in ein leeres Blatt per VBA Aufzeichnung alle bed. Formatierungen gemacht
solltest Du das Teil auch nicht geheim halten. Auch dann nicht, wenn es bald Ostern ist.
Du hast vollkommen recht. Ich habe eine vereinfachte Version fürs Forum gemacht. Hatte das jetzt in der großen Tabelle getestet.

Nun in vereinfachter Form, siehe Anlage.
 Wenn ich irgendwas kopiere,Zeilen einfüge o.ä. ändern sich ja die Bed. Formatierungen. In meiner Aufzeichnung ist nun drin: Einmal alle Bed Form. löschen, danach dann nur die gewünschten herstellen.

Funktioniert soweit gut. Wenn mir jetzt noch jemand erklärt, wie das SKRIPT automatisch beim Start der Tabelle ausgeführt wird, das wäre toll.

Grüße David


MAKRO:
Sub Makro7()
'
' Makro7 Makro
'
    Cells.FormatConditions.Delete
'
    Columns("D:D").Select
    Selection.FormatConditions.AddUniqueValues
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    Selection.FormatConditions(1).DupeUnique = xlUnique
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
    Columns("E:E").Select
    Selection.FormatConditions.AddUniqueValues
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    Selection.FormatConditions(1).DupeUnique = xlUnique
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
    Columns("D:D").Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=VERGLEICH(D1;$A$2:$A$8;0)"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 5287936
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
    Columns("E:E").Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=VERGLEICH(E1;$B$2:$B$8;0)"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 5287936
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
End Sub
Hallo,

Zitat:Funktioniert soweit gut.
Wenn mir jetzt noch jemand erklärt, wie das SKRIPT automatisch beim Start der Tabelle ausgeführt wird, das wäre toll.

Ich fürchte, ganz so einfach ist das dann doch nicht. Also, das Erklären schon, aber das Begreifen  :05:

Automatisch wird der Code ausgeführt, wenn man ihn im Kassenmodul DieseArbeitsmappe ablegt und ihm
den Namen
 
Zitat:Private Sub Workbook_Open()

verpaßt. Mit Deinem jetzigen Makro namens Sub Makro7()  geht da gar nichts. Und ganz sicher werden auch noch
ein paar andere Anpassungen nötig sein.
Da ich morgen einen recht frühen Termin habe, kann ich mich aber jetzt nicht mehr drum kümmern. Sinnvoller ist
es für mich mal zu lauschen, was denn mein Kopfkissen mir zu erzählen hat.

Gut's Nächtle, also
Seiten: 1 2