raba34
Goto Top

Excel: Unterschied Zellen gelöscht - Inhalte gelöscht

Hallo,

ich möchte eine Excel-Tabelle als CSV-Datei abspeichern. Dabei passiert folgendes: Befinden sich am Ende des Tabellenblatt noch Zeilen, bei deen nur die Inhalte gelöscht wurden, so werden deren Trennzeichen mit in die CSV-Datei übernommen. Um dies zu verhindern, müssen die Zeilen selber gelöscht werden.

Unsereiner denkt wohl daran. Aber wenn andere die Tabelle bearbeiten, kann das übersehen werden, zumal es mit der "Entfernen"-Taste eine bequeme Möglichkeit gibt. Aber mit dieser Taste werden eben nur die Inhalte gelöscht.

Gibt es eine Möglichkeit, gelöschte von entfernten Zeilen zu unterscheiden, beispielsweise durch eine andere Farbe?

Gruß
Ralph

Content-ID: 2075264023

Url: https://administrator.de/contentid/2075264023

Ausgedruckt am: 25.11.2024 um 11:11 Uhr

sabines
sabines 06.03.2022 um 06:35:43 Uhr
Goto Top
Moin,

habe ich dich richtig verstanden, es geht um ganze Zeilen am Ende der Tabelle und nicht um Spalten oder Zellen am Ende der Zeilen?
Du könntest versuchen mit bedingter Formatierung zu arbeiten, wobei ich da hoc nicht weiß, ob das funktioniert. Alternativ exportierst Du über ein Script, dass inhaltslose Zeilen löscht oder du lässt nach den Export per Script den unerwünschten Inhalt löschen.

Oder du suchst nach einem komplett anderen Workflow, woher kommen die Daten und warum müssen die exportiert werden und was passiert danach, vielleicht gibt es da einen besseren Ansatzpunkt.

Grüße
raba34
raba34 06.03.2022 um 10:07:00 Uhr
Goto Top
Hallo sabines,

vielen Dank für deine Antwort.

Ja, es geht um ganze Zeilen am Ende der Tabelle.

Mit bedingter Formatierung kann man leere Zellen einfärben. Leider unterscheidet dieser Mechanismus nicht, ob die Zellen leer oder gelöscht sind. Jedenfalls ist mir nicht bekannt, wie man diesen Unterschied in sein Skript bekommen kann. Leer ist hier eben leer.

Gruß
Ralph
1915348599
1915348599 06.03.2022 aktualisiert um 16:49:55 Uhr
Goto Top
Das Verhalten von Excel ist hier folgendermaßen. Wenn die Zelle irgendeine Formatierung hat, also bspw. eine Hintergrundfarbe oder ein benutzerdefiniertes Zahlenformat besitzt usw., dann gehört diese Zelle für Excel zum vom User belegten Inhalt (UsedRange) des Tabellenblatts.
Den Bereich den Excel im Tabellenblatt für "belegt" hält lässt sich leicht im Direktbereich des VBA-Editors anzeigen indem man folgenden Code ausführt:
ActiveSheet.UsedRange.Select
Damit werden alle Zellen des aktuellen Arbeitsblattes markiert die entweder Inhalte haben oder vom User mit einem benutzerdefinierten Format etc. versehen wurden.

Um dies zu verhindern, müssen die Zeilen selber gelöscht werden.
Nein, ist kein Muss, man kann zwar die ganze Zeile markieren und löschen (STRG+-) ja, aber es geht auch anders und zwar mit einem Befehl der sich in die Symbolleiste legen lässt:

screenshot

Mit diesem Befehl markierte Zeilen/Zellen werden auf Default zurückgesetzt und gehören damit nicht mehr dem UsedRange des Arbeitsblattes an.

Alternativ lässt sich das ganze für User noch einfacher gestalten indem man den Export in eine CSV über ein Makro abfackelt, damit lässt sich das dann auch automatisieren.

🖖
raba34
raba34 06.03.2022 um 22:55:21 Uhr
Goto Top
Hallo Pretty,

vielen Dank für deinen Hinweis. Ich habe alles erfolgreich ausprobiert. Dabei habe ich bemerkt, dass schon ein Größerziehen der Zeile dazu führt, dass die Zeile zum UsedRange gehört.

Ob ein zusätzlicher Befehl in der Symbolleiste effektiver ist als STRG+- halte ich für zweifelhaft. Denn ich beiden Fällen muss man dem Benutzer sagen, dass er anders löschen muss, als wenn er intuitiv die Entf-Taste verwendet. Besser wäre weiterhin eine leichte Einfärbung der Zellen, die zum UsedRange gehören. Oder eben ein Makro, aber da kenne ich mich nicht aus (jedenfalls bisher).

Gruß
Ralph