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

Sortieren mit Makro

Discussion in 'Office-Programme' started by Tommizzo, Jan 22, 2008.

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

    Tommizzo Byte

    Ich habe in Excel eine Maske erstellt, die die eingegebenen Daten durch ein Makro in eine Tabelle überträgt. Da auch das Datum mit übertragen wird, will ich das die Tabelle chronologisch sortiert wird. Also das aktuellste Datum ganz oben. Ich habe das schon über Makroaufzeichnen versucht, aber wenn ich das dann einem Button zuweise klappt es nicht. Mein Makro sieht wie folgt aus:
    Range("A9:A13").Select
    Range("A9:F13").Sort Key1:=Range("A9"), Order1:=xlDescending, Header:= _
    xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal

    Kann mir jemand sagen was ich falsch gemacht habe.
    Danke!

    Tommizzo
     
  2. brum

    brum Kbyte

    Zur Zeit sortierst Du nur 4 oder 5 Zeilen (A9:F13). Ist das korrekt?

    Gruss
    Bruno
     
  3. Tommizzo

    Tommizzo Byte

    Nein, es sollen mehrere hundert sortiert werden, da es sich um eine kontinuierliche Eingabe handelt.

    Gruß
    Tommizzo
     
  4. brum

    brum Kbyte

    Dann musst Du "A9:F13" ändern. Wenn Du danach keine Zeilen mehr hast, kannst Du einfach "A9:F65536" nehmen.

    Übrigens kannst Du die erste Zeile löschen.

    Gruss
    Bruno
     
  5. Tommizzo

    Tommizzo Byte

    Es klappt noch nicht ganz. Mir wird immer angezeigt, dass für diese Aktion alle verbundenen Zellen die gleiche Größe haben müssen. Soll ich nun jede Zelle auf die gleiche Größe bringen?

    Gruss
    Tommizzo
     
  6. brum

    brum Kbyte

    Hast Du verbundene Zellen?

    Gruss
    Bruno
     
  7. Tommizzo

    Tommizzo Byte

    nein, die Zellen sind nicht vebunden. Nur unterschiedlich breit mehr nicht.

    Gruss
    Tommizzo
     
  8. Urs2

    Urs2 Megabyte

    Ist der Code denn jetzt richtig geschrieben? Er müsste so aussehen >

    Range("A9:F65536").Select
    Selection.Sort Key1:=Range("A9"), Order1:=xlDescending, Header:= _
    xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal

    Wobei auch hier ein Name für den zu sortierenden Bereich spätere Aenderungen erleichtert. Range-Zeile dann einfach durch die GoTo-Zeile ersetzen, wie gehabt. Der NamensBereich würde sich dann bei zusätzlichen Daten von selbst erweitern...

    Sind die Zellen A9:A65536 alle gleich formatiert?

    Gruss Urs
     
  9. Tommizzo

    Tommizzo Byte

    Leider klappt es auch mit dem Code nicht. Die Zellen sind bei mir unterschielich breit und sind teilweise als Text, Datum oder EUR Format deklariert. Stört das dabei?

    Gruß
    Tommizzo
     
  10. Urs2

    Urs2 Megabyte

    Es geht nur um die Spalte A, also die Sortierspalte. Hier muss die Formatierung überall gleich sein, es können ja nicht Datum, Text, oder sonst was miteinander verglichen werden. Bei den ewig langen Spalten können schon irgendwo fremde Formate drin sein.

    Klicke auf die Spaltenbezeichnung "A", dann ist alles ausgewählt > jetzt Format als Datum. Bei den anderen Spalten sinngemäss.

    Sonst halt die Tabelle als benannten Bereich bezeichnen. Der Sortierbefehl wäre dann >

    Application.Goto Reference:="NameDesBenanntenBereichs"
    Selection.Sort Key1:=Range("A9"), Order1:=xlAscending...usw.....

    Gruss Urs
     
  11. Beverly

    Beverly Halbes Megabyte

    Hi Tommi,

    die genannte Fehlermeldung kommt ausschließlich dann, wenn sich im Sortierbereich verbundene Zellen befinden. Du schreibst die Zellen sind "unterschiedlich breit" - meinst du damit vielleicht die Höhe der Zellen? In diesem Fall sind die Zellen nicht spalten- sondern zeilenweise verbunden und das führt genau zu dem selben Fehler.

    Die Formatierung spielt keine Rolle, wenn sie sich auf unterschiedliche Spalten bezieht. Sind innerhalb einer Spalte unterschiedliche Formatierungen vorhanden, so hat das nur einen Einfluss auf die Sortierreihenfolge, da Zahlen anders als Text sortiert werden. Damit wird jedoch kein Fehler ausgelöst.
     
  12. Tommizzo

    Tommizzo Byte

    Hi Karin!

    Die 1 und 3 Zeile sind höher als die restlichen. Normal haben alle eine Zeilenhöhe von 12,75 bis auf die beiden halt. Aber ich will doch erst ab Zeile 9 sortieren. Sind Zeile 1 und 3 das Problem?

    Gruß
    Tommizzo
     
  13. Beverly

    Beverly Halbes Megabyte

    Hi Tommi,

    die Zeilenhöhe an sich beeinflusst das Ganze nicht, wenn es die gesamte Zeile betrifft.

    Lade deine Arbeitsmappe doch mal hoch, vielleicht kann man es dann besser nachvollziehen.
     
Thread Status:
Not open for further replies.

Share This Page