
Beim Sortieren einer Tabelle oder eines Bereichs in Excel verschieben sich die Zellwerte und die grundlegende Formatierung wie Fettdruck, Kursivschrift, Farben usw., die folgenden Dinge verschieben sich jedoch NICHT:
- Grenzen
- Datenvalidierungsregeln
Meine Tabelle verfügt über eine Datenüberprüfung für jede Zelle. Wenn ich also einen Sortiervorgang durchführe, werden zwar die Werte verschoben, ihre Überprüfung wird jedoch nicht übernommen.
Hier ist ein Beispiel vor dem Sortieren:
Und zwar nach der Sortierung (A-Z nach "Obst"-Namen.)
Gibt es eine Möglichkeit, Excel dazu zu bringen, die Datenüberprüfungsregeln zusammen mit den Werten und Formaten zu verschieben, wenn Excel einen Sortiervorgang ausführt?
Bearbeiten:
Nur um das klarzustellen: Ich habe hier zwei voneinander zu trennende Anliegen:
- Hauptanliegen: Wenn ein Benutzer auf die Schaltfläche „Sortieren“ oder die Option „Sortieren“ in der Überschrift einer Filterspalte klickt, werden meine (komplexen!) Datenüberprüfungsregeln über Bord geworfen.
- Zweite Sorge: Es wäreHübschob mein Arbeitsblatt mithilfe der integrierten Excel-Sortierschaltflächen sortiert werden könnte (das sind die offensichtlichsten Möglichkeiten, Daten zu sortieren). Ein separates Makro nur zum Sortieren scheint etwas umständlich.
Bearbeiten:
Meine endgültige Lösung bestand darin, die Sortierung vollständig zu deaktivieren, indem ich die Arbeitsmappe schützte und die Sortierung für alle Blätter deaktivierte. Sie können die Schaltflächen „Sortieren“ drücken, aber sie bewirken nichts.
Als zusätzliche Sicherheitsmaßnahme habe ich VBA hinzugefügt, das „Arbeitsmappe schützen“ bei jedem Öffnen der Arbeitsmappe erneut anwendet und ein Arbeitsblatt mit Verwendungsanweisungen und Warnungen anzeigt (wie etwa „Nicht sortieren!“). Der Endbenutzer kann den Schutz der Arbeitsmappe jederzeit aufheben, daher ist das nicht narrensicher, aber ich glaube, es ist das Beste, was ich tun kann.
Antwort1
Sie können eine allgemeine Regel für den Umgang mit pH-Werten erstellen und diese auf die gesamte Wertespalte anwenden. Sie müssen lediglich eine Bedingung einfügen, die Key1 überprüft, um festzustellen, ob der Wert ein pH-Wert ist. Wenn dies der Fall ist, überprüfen Sie die Kriterien. Wenn nicht, geben Sie einfach TRUE zurück, sodass alles erlaubt ist.
Hier sehen Sie beispielsweise eine benutzerdefinierte Datenüberprüfungsregel, die auf C2:C6
(Spalte „Wert 1“) in Ihrer Tabelle angewendet wird:
=IF(B2="pH",AND(C2>=0,C2<=14,C2=INT(C2)),TRUE)
Dadurch werden pH-Werte von 0<=pH<=14 und nur ganze Zahlen begrenzt. Da die Regel auf die gesamte Spalte angewendet wird, hat die Sortierung keinen Einfluss auf die Datenüberprüfung.
Sie können mit Rändern auf ähnliche Weise umgehen, wenn Sie sie mithilfe der bedingten Formatierung anwenden. Wenden Sie diese einfach auf alle Daten in der Spalte mit einer entsprechenden Formelregel an, wie etwa
=B2="pH"
Antwort2
Wenn ich mir Teile des alten Codes anschaue, sieht es so aus, als hätte ich die Validierer gelöscht und neu erstellt:
var cellValues = activeSheet.Range[leftColumn + startingRow, Type.Missing];
cellValues.Validation.Delete();
Wenn Sie in Excel programmgesteuert etwas tun möchten, zeichnen Sie ein Makro auf > führen Sie den Vorgang manuell aus > stoppen Sie die Makroaufzeichnung > drücken Sie Alt + F11 und zeigen Sie den Code im neu erstellten Modul an. Dies ist eine schnelle Möglichkeit, die VBA-Programmierung zu erlernen. Viel Glück!
Antwort3
Dies ist zwar nicht die ganze Antwort auf Ihre Frage, aber ich bin der Meinung, dass es erwähnt werden sollte.
Die Art und Weise, wie Ihre Daten in die Tabelle eingegeben werden, ist etwas ungewöhnlich. Wenn es dafür keine besonderen Gründe gibt, können Sie das Problem möglicherweise auch lösen, indem Sie das Design der Tabelle ein wenig ändern. Die einfachste Möglichkeit, Daten wie Ihre einzugeben, besteht darin, eine Spalte pro Schlüssel (Farbe, pH-Wert, Durchmesser usw.) und eine Zeile pro Frucht zu haben. Auf diese Weise können Sie Regeln und Stile für die gesamte Spalte definieren und müssen sich nicht um das Sortieren kümmern.
Wenn Sie über einen Schlüssel und einen Wert auf Daten zugreifen müssen, können Pivot-Tabellen und Pivot-Tabellen-Lookups (GETPIVOTDATA) oder Zeilen-/Spalten-Lookups (VLOOKUP / HLOOKUP) hilfreich sein.
In Ihrem Fall scheinen die Schlüssel ziemlich gut definiert zu sein (sonst ein Grund, sich für den Schlüssel-Wert-Ansatz zu entscheiden), und da Excel Tausende von Spalten zulässt, werden Ihnen auch die Schlüssel nicht ausgehen. Wenn Sie für jeden Schlüssel eine separate Spalte verwenden, fungiert dies auch als eine Art Eingabeformular. Sie werden nicht vergessen, einen Wert für eine Frucht einzugeben, da die Zelle für diesen Wert leer sein wird.
Wenn Sie über mehrere Proben verfügen (nicht alle Äpfel haben den gleichen Durchmesser usw.), können Sie jede Zeile in der Tabelle als eine einzelne Probe behandeln.
Zudem erleichtert diese Vorgehensweise die Weiterverarbeitung der Daten, etwa die Erstellung von Diagrammen und Pivot-Tabellen.