Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1060to1064
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Über mehrere Arbeitsblätter sortieren
20.03.2009 14:56:02
Ben
Hallo
Ich habe folgenden Code, um mittels einer Schaltfläche eine Liste in Tabelle 1 zu sortieren:

Private Sub CommandButton1_Click()
'Nach Namen sortieren
Range("A4:J43").Select
Selection.Sort Key1:=Range("D5"), Order1:=xlAscending, Key2:=Range("C5") _
, Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:=False _
, Orientation:=xlTopToBottom
End Sub


Wie kriege ich es hin, dass diese Sortierung nacheinander auch in Tabelle 2 und 3, (im selben Bereich) durchgeführt wird. In Tabelle 4 soll aber nicht sortiert werden.
Danke und Gruss
Ben

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Über mehrere Arbeitsblätter sortieren
20.03.2009 15:00:00
Ramses
Hallo
Am einfachsten mit Nachdenken :-)

Private Sub CommandButton1_Click()
'Nach Namen sortieren
worksheets("Tabelle1").Select
Range("A4:J43").Select
Selection.Sort Key1:=Range("D5"), Order1:=xlAscending, Key2:=Range("C5") _
, Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:=False _
, Orientation:=xlTopToBottom
Worksheets("Tabelle2").Select
Range("A4:J43").Selec
Selection.Sort Key1:=Range("D5"), Order1:=xlAscending, Key2:=Range("C5") _
, Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:=False _
, Orientation:=xlTopToBottom
usw.
End Sub


Man könnte es auch eleganter mit einer Schleife und ohne Select lösen... aber so geht es eben auch :-)
Gruss Rainer

Anzeige
AW: Über mehrere Arbeitsblätter sortieren
20.03.2009 15:39:51
Ben
Hallo Rainer
Mit Deinem Ansatz erhalte ich die folgende Fehlermeldung (nach der Auswahl des 2. Arbeitsblatts):
Laufzeitfehler '1004':
Die Select-Methode des Range-Objektes konnte nicht ausgeführt werden.
Gruss
Ben
Range("A4:J43").Selec..das t fehlt...owT
20.03.2009 15:45:58
robert
AW: Range("A4:J43").Selec..das t fehlt...owT
20.03.2009 15:53:25
Ben
Es funktioniert auch mit dem T nicht, sondern bringt die erwähnte Fehlermeldung.
AW: Range("A4:J43").Selec..das t fehlt...owT
20.03.2009 16:09:23
robert
hi,
Range("A4:J43").Select
geht nicht?
dann heissen deine blätter anders ?
AW: Über mehrere Arbeitsblätter sortieren
20.03.2009 15:05:04
Oberschlumpf
Hi Ben
Vielleicht so:

Private Sub CommandButton1_Click()
'Nach Namen sortieren
Dim liSheet As Integer
For liSheet = 1 to 3
With Sheets(liSheet)
.Range("A4:J43").Sort Key1:=.Range("D5"), Order1:=xlAscending, Key2:=.Range("C5") _
, Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:=False _
, Orientation:=xlTopToBottom
End With
Next
End Sub


Hilfts?
Wenn's nich hilft, dann bitte Bsp-Datei mit 3 Tabellenblättern und Bsp-Daten in den Blättern.
Ciao
Thorsten

Anzeige
AW: Über mehrere Arbeitsblätter sortieren
23.03.2009 09:23:36
Ben
Hallo Thorsten
Dein Code passt. Nur noch eine Rückfrage: Wie müsste er angepasst werden, wenn ich z.B. die Tabellenblätter 1, 2 und 4 sortieren möchte, nicht aber die 3?
Ich habe folgendes versucht:
For liSheet = 1 to 2 And 4
Das funktioniert aber nicht.
Danke und Gruss
Ben
AW: Über mehrere Arbeitsblätter sortieren
23.03.2009 10:13:04
Oberschlumpf
Hi Ben
Versuch mal so (ungetestet):

Private Sub CommandButton1_Click()
'Nach Namen sortieren
Dim liSheet As Integer
For liSheet = 1 to 4
If liSheet = 3 Then liSheet = 4
With Sheets(liSheet)
.Range("A4:J43").Sort Key1:=.Range("D5"), Order1:=xlAscending, Key2:=.Range("C5") _
, Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:=False _
, Orientation:=xlTopToBottom
End With
Next
End Sub


Hilfts?
Ciao
Thorsten

Anzeige
AW: Über mehrere Arbeitsblätter sortieren
23.03.2009 10:25:04
Ben
Pefekt. Vielen Dank für die Hilfe.
Gruss
Ben

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige