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, 20:07 (Dieser Beitrag wurde zuletzt bearbeitet: 23.02.2018, 20: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.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!
23.02.2018, 21:10 (Dieser Beitrag wurde zuletzt bearbeitet: 23.02.2018, 22: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.
Gut's Nächtle, also
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!