Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Bedingte Formatierung schützen
#1
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.


Angehängte Dateien
.xlsx   bed formatierung.xlsx (Größe: 9,67 KB / Downloads: 1)
Antworten Top
#2
Auch Hallo,

füge nach dem Kopieren nur die Werte ein, dann bleibt deine bF erhalten.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#3
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
Antworten Top
#4
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.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#5
oder per VBA die BF prüfen und ggf wiederherstellen.
Antworten Top
#6
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")
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • derdaave
Antworten Top
#7
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
Antworten Top
#8
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.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#9
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


Angehängte Dateien
.xlsm   bed formatierung1.xlsm (Größe: 16,86 KB / Downloads: 1)
Antworten Top
#10
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
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
[-] Folgende(r) 1 Nutzer sagt Danke an Käpt'n Blaubär für diesen Beitrag:
  • derdaave
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste