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.
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. :)
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.
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.
23.02.2018, 21:07 (Dieser Beitrag wurde zuletzt bearbeitet: 23.02.2018, 21:07 von Käpt'n Blaubär.)
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.
23.02.2018, 22:10 (Dieser Beitrag wurde zuletzt bearbeitet: 23.02.2018, 23:27 von Kuwer.
Bearbeitungsgrund: Smilies ausgeschaltet
)
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
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.