Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Excel entfernt Sortierung

Excel entfernt Sortierung
13.08.2013 10:38:56
Max
Guten Morgen,
Ich arbeite noch immer an meinem Tool für die Liquiditätsplanung und bin fast fertig.
Gestern habe ich das Marko noch um einen Teil ergänzt, bei dem 2 Spalten auf der Hilfstabelle Alphabetisch sortiert werden. Das Marko läuft auch komplett ohne Fehler durch. Der Fehler kommt erst zu tragen, wenn ich die Mappe schließe und erneut öffne. Dann erhalte ich folgende Fehlermeldung:
"Von Excel wurde unlesbarer Inhalt in 'Liquiditätsplanung.xlsm' gefunden. Möchten Sie den Inhalt dieser Arbeitsmappe wiederherstellen? (Ja/Nein)"
Wenn ich mit Ja bestätige kommt ein 2. Feld in dem steht: "Entfernte Datensätze: Sortierung von /xl/Worksheets/sheet6.xml-Part". Das Sheet 6 ist meine "Hilfstabelle". Die Meldung als solche stört nicht groß weiter, da die Sortierung tatsächlich noch so ist, wie beim schließen der Mappe. Allerdings muss ich beim Speichern immer wieder den richtigen Ordner manuell suchen und dann die Datei überschreiben.
Und ich hätte da noch eine 2. kleine Frage:
Warum muss ich 2x Application.ScreenUpdating = False schreiben um das Monitorflackern endgültig los zu werden, obwohl ich ja extra noch auf ein "Ladebildschirm" springe?
Da ich noch ein VBA Rookie bin, poste ich hier mal meinen gesamten Code.
Hoffe Ihr könnt mir helfen.
Private Sub xCopy3()
Application.ScreenUpdating = False
Application.Cursor = xlWait
Application.Calculation = xlCalculationManual
Worksheets("Ladebildschirm").Visible = True
Worksheets("Ladebildschirm").Activate
'Import
Worksheets("Debitoren OP-Liste").Cells.Clear
Worksheets("Kreditoren Fälligkeitsübersicht").Cells.Clear
Dim QWB As Workbook, QWB2 As Workbook, ZWB As Workbook
Workbooks.Open "G:\Liquidität\Excel Export Debitoren OP-Liste (aus Anzeige).xlsx"
Workbooks.Open "G:\Liquidität\Excel Export Kreditoren Faelligkeitsuebersicht (aus Anzeige).xlsx" _
_
Set QWB = Workbooks("Excel Export Debitoren OP-Liste (aus Anzeige).xlsx")
Set QWB2 = Workbooks("Excel Export Kreditoren Faelligkeitsuebersicht (aus Anzeige).xlsx")
Set ZWB = ThisWorkbook
Dim QWS As Worksheet, QWS2 As Worksheet, ZWS As Worksheet, ZWS2 As Worksheet
Set QWS = QWB.Worksheets("Debitoren OP-Liste")
Set ZWS = ZWB.Worksheets("Debitoren OP-Liste")
Set QWS2 = QWB2.Worksheets("Kreditoren Fälligkeitsübersicht")
Set ZWS2 = ZWB.Worksheets("Kreditoren Fälligkeitsübersicht")
QWS.Cells.Copy ZWS.Cells(1, 1)
QWS2.Cells.Copy ZWS2.Cells(1, 1)
Workbooks("Excel Export Debitoren OP-Liste (aus Anzeige).xlsx").Close
Workbooks("Excel Export Kreditoren Faelligkeitsuebersicht (aus Anzeige).xlsx").Close
'Kurs ausschneiden
Dim i As Long
For i = 2 To 1000
If Worksheets("Debitoren Op-Liste").Cells(i, "Q").Value = "Kurs:" Then
Worksheets("Debitoren Op-Liste").Cells(i, "Q").Cut Destination:=Worksheets("Debitoren Op- _
Liste").Cells(i, "T")
Worksheets("Debitoren Op-Liste").Cells(i, "O").Clear
End If
Next i
'Nullen_löschen
Dim e As Long
For e = 2 To 1000
If Worksheets("Debitoren Op-Liste").Cells(e, "O").Value = 0 Then
Worksheets("Debitoren Op-Liste").Cells(e, "O").Clear
End If
Next e
'einblenden alles
Worksheets("Liquiditätsplanung").Rows("41:139").EntireRow.Hidden = False
'OPs kopieren
Dim r As Long, n As Long
n = 19
Worksheets("Hilfstabelle").Range("L:L").Clear
For r = 2 To 1000
If Worksheets("Debitoren OP-Liste").Cells(r, "O").Value  0 Then
n = n + 1
Worksheets("Debitoren OP-Liste").Cells(r, "O").Copy Destination:=Worksheets("Hilfstabelle"). _
_
Cells(n, "L")
End If
Next r
'Datum umwandeln
Worksheets("Debitoren OP-Liste").Columns("Q:Q").TextToColumns DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 4), TrailingMinusNumbers:=True
Calculate
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
'Matrix für Umbuchungen
Dim m, a, b As Long
Worksheets("Hilfstabelle").Range("V:Z").Clear
a = 19
b = 19
For m = 20 To 219
If Worksheets("Hilfstabelle").Cells(m, "K").Value  "" Then
a = a + 1
Worksheets("Hilfstabelle").Cells(m, "K").Copy
Worksheets("Hilfstabelle").Cells(a, "W").PasteSpecial xlValues
End If
If Worksheets("Hilfstabelle").Cells(m, "L").Value  "" Then
Worksheets("Hilfstabelle").Cells(m, "L").Copy
Worksheets("Hilfstabelle").Cells(a, "X").PasteSpecial xlValues
End If
Next m
'Matrix sortieren
Worksheets("Hilfstabelle").Sort.SortFields.Add Key:=Range( _
"W20"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With Worksheets("Hilfstabelle").Sort
.SetRange Range("W20:X219")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Kunden 1x
For m = 20 To 219
If Worksheets("Hilfstabelle").Cells(m, "W").Value  "" Then
b = b + 1
If Worksheets("Hilfstabelle").Cells(m - 1, "W").Value = Worksheets("Hilfstabelle").Cells(m,  _
_
"W").Value Then
Worksheets("Hilfstabelle").Cells(m, "V").Value = ""
Else:   Worksheets("Hilfstabelle").Cells(m, "W").Copy
Worksheets("Hilfstabelle").Cells(b, "V").PasteSpecial xlValues
End If
End If
Next m
'ausblenden_Kleinbeträge
Dim z As Long
For z = 41 To 139
If Worksheets("Liquiditätsplanung").Cells(z, "B").Value 

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hat keiner eine Idee?
13.08.2013 11:53:14
Max
Hi,
kann mir wirklich niemand hier mit dem Problem helfen?
Gruß Max

AW: Excel entfernt Sortierung
13.08.2013 12:32:37
selli
hallo max,
ersetze doch mal die zeile:
Worksheets("Hilfstabelle").Range("V:Z").Clear
durch:
Worksheets("Hilfstabelle").Range("V:Z").ClearContents
(schuss ins blaue)
gruß
selli

Anzeige
AW: Excel entfernt Sortierung
13.08.2013 13:42:10
Max
Hi selli,
der Schuss ins Blaue ging leider daneben :(
Bin für jeden Hinweis dankbar.
Mfg Max

AW: Excel entfernt Sortierung
13.08.2013 14:42:53
Max
Hab eine Lösung gefunden.
Anstatt den Bereich mit den sortierten Zellen einfach nur zu leeren, lösche ich ihn jetzt komplett, so dass jedes mal "frische" Spalten zur Verfügungen stehen.
Was genau den Fehler auslöst weis ich leider trotzdem nicht so richtig.
Mfg Max
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Excel entfernt Sortierung: Lösungen und Tipps


Schritt-für-Schritt-Anleitung

Um das Problem mit der Fehlermeldung "entfernte Datensätze: Sortierung von /xl/Worksheets/sheet6.xml-Part" zu beheben, kannst Du folgende Schritte ausführen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Suche Dein Makro:

    • Navigiere zu dem Modul, in dem Dein Makro gespeichert ist.
  3. Ersetze die Clearing-Methode:

    • Suche die Zeile, in der Du den Bereich leerst:
      Worksheets("Hilfstabelle").Range("V:Z").Clear
    • Ersetze sie durch:
      Worksheets("Hilfstabelle").Range("V:Z").ClearContents
    • Dies könnte helfen, die entfernten Datensätze zu vermeiden.
  4. Überprüfe den Sortierbereich:

    • Stelle sicher, dass der Sortierbereich korrekt definiert ist und keine leeren Zellen oder fehlerhafte Daten enthält.
  5. Testen:

    • Speichere die Änderungen, schließe die Arbeitsmappe und öffne sie erneut, um zu prüfen, ob das Problem weiterhin besteht.

Häufige Fehler und Lösungen

  • Fehlerhafte Daten: Oftmals können fehlerhafte oder leere Zellen in den sortierten Bereichen zu Problemen führen. Überprüfe Deine Daten vor der Sortierung.

  • Makro läuft ohne Fehler, aber Excel meldet Probleme: Wenn Dein Makro beim ersten Durchlauf keine Fehler anzeigt, aber beim Schließen der Datei Probleme auftritt, könnte es an der Art liegen, wie Du Daten in die Arbeitsmappe schreibst. Überlege, die Daten vor der Sortierung gründlich zu validieren.

  • Zweifaches Setzen von Application.ScreenUpdating: Das mehrfache Setzen von Application.ScreenUpdating = False kann notwendig sein, wenn Du zwischen verschiedenen Arbeitsblättern wechselst. Dies hilft, das Flackern des Bildschirms zu minimieren.


Alternative Methoden

  • Verwende temporäre Bereiche: Anstatt den bestehenden Bereich zu leeren, kannst Du temporäre Bereiche erstellen, um Deine Daten zu speichern und erst danach die Sortierung anzuwenden. Dies könnte die Integrität Deiner Daten wahren.

  • Daten validieren: Nutze die If-Bedingungen, um sicherzustellen, dass nur gültige Daten in den Sortierbereich gelangen. Dies kann helfen, unerwartete Fehler zu vermeiden.


Praktische Beispiele

Wenn Du mit dem liquiditätsplanung tool arbeitest, könnte ein Beispiel für die Sortierung wie folgt aussehen:

With Worksheets("Hilfstabelle")
    .Sort.SortFields.Clear
    .Sort.SortFields.Add Key:=.Range("A2:A100"), Order:=xlAscending
    .Sort.SetRange .Range("A1:C100")
    .Sort.Header = xlYes
    .Sort.Apply
End With

Hier wird der Bereich A2:A100 aufsteigend sortiert. Achte darauf, dass keine leeren Zellen in diesem Bereich vorhanden sind.


Tipps für Profis

  • Debugging aktivieren: Aktiviere die Debugging-Funktion im VBA-Editor, um den genauen Punkt zu identifizieren, an dem der Fehler auftritt.

  • Kurze Makros: Halte Deine Makros so kurz wie möglich. Teile komplexe Aufgaben in kleinere Funktionen auf, um die Lesbarkeit und Wartbarkeit zu erhöhen.

  • Regelmäßige Backups: Erstelle regelmäßig Backups Deiner Arbeitsmappe, besonders bevor Du Änderungen am VBA-Code vornimmst.


FAQ: Häufige Fragen

1. Warum erhalte ich die Fehlermeldung "entfernte Datensätze"?
Die Fehlermeldung tritt auf, wenn Excel beim Öffnen der Datei auf unlesbare oder inkonsistente Daten stößt. Dies kann durch fehlerhafte Makros oder ungültige Datenstrukturen verursacht werden.

2. Wie kann ich verhindern, dass Excel die Sortierung entfernt?
Verwende ClearContents statt Clear, um den Inhalt der Zellen zu löschen, ohne die Zellen selbst zu beeinflussen. Achte auch darauf, dass alle Daten vor der Sortierung korrekt und vollständig sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige