Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

makro sortieren über mehrere register
#11
Hi

Zitat:Dadurch, dass ich die Tabellen in den Registern als Tabelle formatiert habe, hatte ich gehofft um die Angabe des Sortierbereiches herumzukommen
dieser Satz verwirrt mich etwas, denn was hat das Formatieren einer Tabelle mit der Angabe des Sortierbereichs zu tun.  m.E. ist das Irrelevant

Anbei noch mal ein Code mit GoSub wo man ganz gezielt nur die drei Tabellen sortiert die mit Set Sht definiert wurden. Da musst du natürlich die korrekten Tabellen Namen (Reiternamen) angeben. Ich habe versucht die ganze Spalte als Sort Bereich anzugeben. Das hat aber den Nachteil das die Überschriftszxeile mit formatiert wird. Der Bereich kann ja auf 100.000 bis  Million Zeilen eingestellt werden.  z.Zeit 1.000.000  Die Adresse Adr1 bis Adr3 sind die Spalten mit der 1. Zeile, die formatiert werden sollen. Ich weiss nicht wie weit die Überschrift geht. 

Zum Schutz vor Datenverlust oder Sortierfehler bitte zuerst das makro in einer Test Datei ausprobieren. Da siehtst du sofort das Ergebnis und kannst alle Adressen in Ruhe anpassen. Ich arbeite waehrend der Entwicklungsphase nie mit der Originaldatei !!  (persönliche Erfahrungen) 

Schau mal ob es so funktioniert.


Code:
Const Bereich = "C3:J1040000"  'letzte Zelle = 1048575
Const Adr1 = "C3"
Const Adr2 = "D3"
Const Adr3 = "E3"


Sub Bereich_sortieren()
Dim Sht As Worksheet
   
Set Sht = Worksheets("%19"):  GoSub sort   'Bitte Name der Tabellen einsetzen
Set Sht = Worksheets("%20"):  GoSub sort
Set Sht = Worksheets("%21"):  GoSub sort
Exit Sub

sort:  'in Sheet Bereich sortieren
   Worksheets(Sht).Range(Bereich).sort _
       Key1:=Range(Adr1), Order1:=xlAscending, Key2:=Range(Adr2), Order2:=xlAscending, _
       Key3:=Range(Adr3), Order3:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:= _
       False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:= _
       xlSortNormal, DataOption3:=xlSortNormal
  Return
End Sub
Antworten Top
#12
Nachtrag

das Makro ist die Sortier Routine aus Excel 2003.  Ich finde sie einfacher und unkomplizierter zu programmieren.
Es ist aber immer erforderlich Excel zu sagen in welcher Tabelle sortiert werden soll, und welcher Bereich sortiert wird. Die neuen Tabellen haben ja über 1 Million Zeilen. Der Endbereich sollte beim festlegen kein Problem sein 

mfg  Gast 123
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste