1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Tabelle sortieren bringt Laufzeitfehler 438

Discussion in 'Office-Programme' started by MAGlite, Mar 2, 2010.

Thread Status:
Not open for further replies.
  1. MAGlite

    MAGlite ROM

    Hallo zusammen,

    ich hoffe es kann mir hier jemand helfen.

    Ich hab eine Tabelle, welche ich sortieren will, nach eigener Reihenfolge.
    Dabei bringt er mir immer den Laufzeitfehler. Suche im Internet war erfolglos, keiner der Lösungen konnte mir helfen.

    Bei dieser Zeile steht er mit der Fehlermeldung:

    ActiveWorkbook.Worksheets("Tabelle1").AutoFilter.Sort.SortFields.Clear

    Allgemeine Infos:

    9 Spalten, nach der letzten soll sortiert werden, natürlich sollten die Zeilen so erhalten bleiben. Das Sortieren sollte erst in der 8. Zeile beginnen, somit ist der "Sortierbereich" von A8 : I8 - Ax : Ix.

    :bahnhof:

    Danke schonmal für die Hilfe
     
  2. MAGlite

    MAGlite ROM

    Achja, hab mittlerweile herausgefunden, dass es an der Excel-Version liegt.
    Unter 2008 funzt es, aber ich hab nur 2003. Kennt jemand den Weg für 2003?
     
  3. brum

    brum Kbyte

    Ich habe leider im Moment auch keine Lösung (weil ich unter anderem nicht genau weiss, was das Makro machen soll).

    Aber versuch mal, in Excel 2003 ein Makro aufzuzeichnen, das genau das macht, was Du willst (und dann entsprechend noch ein bisschen bearbeiten).

    Gruss
    Bruno
     
  4. MAGlite

    MAGlite ROM

    [​IMG]

    Um das ganze mal zu veranschaulichen.

    Das Makro sollte die Spalte I sortieren und entsprechend die Zeilen gleich mit, damit diese nicht aus dem Zusammenhang gerissen werden.

    Gruß
     
    Last edited: Mar 2, 2010
  5. Hascheff

    Hascheff Moderator

    Hallo MAGlite,
    ich vermute, dass Excel 2003 nichts mit xlPinYin anfangen kann. Dieses bezieht sich offensichtlich auf Zeile 4
    Code:
    CustomOrder:="sofort,läuft,bestellt, ,Termin,UVV,zurückgest.,erledigt", 
    Falls VBA dafür unter Excel 2003 keine Lösung bietet, hätte ich ein Workaround:

    Lege eine Hilfsspalte an, in der du den Einträgen "sofort,läuft,bestellt, ,Termin,UVV,zurückgest.,erledigt" die Zahlen 1 bis 8 zuordnest. Dann sortierst du nach dieser Hilfsspalte.

    Gruß
    Hascheff
     
  6. Urs2

    Urs2 Megabyte

    ...na ja... xlPinYin ist wohl eine weitere Folge von Copy/Paste, ich sehe jedenfalls keine chinesischen Schriftzeichen.
    Aber so weit ist er ja gar nicht gekommen... die erste Zeile war schon das Ende.

    @Maglite
    Excel2008 ist für Macintosh, das hat einige Besonderheiten, ob das für diesen Fall auch zutrifft, weiss ich nicht.
    Ich schreibe hier über Excel2003 für Windows.

    Es ist wirklich schwer zu verstehen, was dieser Code denn tun soll. Die schon nach einem Kriterium in Spalte "I" gefilterten Zeilen kannst du ja nicht noch nach "I" sortieren, dort steht in allen Zeilen dasselbe...
    Ich sehe nur 2 plausible Ziele >

    1. Die ungefilterte Tabelle soll nach Spalte "I" sortiert werden, damit man übersichtlich sieht was klappt, und was nicht.
    Das macht dieser Code >
    Code:
    With Sheets("Tabelle1")
                'entfernt allfälligen AutoFilter
        If .AutoFilterMode Then .Range("[COLOR="red"]A7[/COLOR]").AutoFilter
                'oberste Zeile mit Daten hier festlegen
        rOben = [COLOR="red"]8[/COLOR]
                'unterste Zeile mit Daten, wird hier in Spalte "D" vermessen
        rUnten = Range("[COLOR="red"]D[/COLOR]65536").End(xlUp).Row
                'sortiert... Spalte A = 1, Spalte I = 9
        .Range(Cells(rOben, [COLOR="red"]1[/COLOR]), Cells(rUnten, [COLOR="red"]9[/COLOR])).Sort Key1:=.Range("[COLOR="red"]I8[/COLOR]")
                 'setzt Autofilter wieder
        .Range("[COLOR="red"]A7[/COLOR]").AutoFilter
    End With
    
    2. Ein Autofilter soll für Spalte "I" mit einem bestimmten Kriterium gesetzt werden >>> damit >
    Code:
    With Sheets("Tabelle1")
                'entfernt gesetzte AutoFilter in anderen Spalten
        If .AutoFilterMode Then .Range("[COLOR="red"]A7[/COLOR]").AutoFilter
                'filtert > Deine Spalte I ist die 9. Spalte des Autofilters
        .Range("[COLOR="red"]I7[/COLOR]").AutoFilter field:=[COLOR="red"]9[/COLOR], Criteria1:="[COLOR="red"]Termin[/COLOR]"
    End With
    
    Die roten Zeichen ggf anpassen, wenn Tabelle geändert

    Gruss Urs
     
Thread Status:
Not open for further replies.

Share This Page