Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1572to1576
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
Inhaltsverzeichnis

Verschiedene Makros auf versch. Tabellenblätter

Verschiedene Makros auf versch. Tabellenblätter
16.08.2017 10:17:37
Dimi
Hallo liebe Lebensretter,
ich habe eine Excel Arbeitsmappe mit 17 Tabellenblättern. Durch folgendes Makro habe ich das aktive Arbeitsblatt immer sortiert:
Sub Sortieren_ALL()
' Sortieren ALL Makro
' Tastenkombination: Strg+s
Range("B7:E81").Select
ActiveSheet.Sort.SortFields.Clear
ActiveSheet.Sort.SortFields.Add Key:=Range("B7:B81" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveSheet.Sort
.SetRange Range("B7:E81")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B2").Select
End Sub
Allerdings habe ich ein Tabellenblatt ("FF") dieses ist anders aufgebaut. Hier müsste das Makro wie folgt aussehen:
Sub Sortieren_FF()
' Sortieren FF Makro
Range("B7:E36").Select
ActiveWorkbook.Worksheets("FF").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("FF").Sort.SortFields.Add Key:=Range("B7:B36"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("FF").Sort
.SetRange Range("B7:E36")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B45:E74").Select
ActiveWorkbook.Worksheets("FF").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("FF").Sort.SortFields.Add Key:=Range("B45:B74"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("FF").Sort
.SetRange Range("B45:E74")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B83:E112").Select
ActiveWorkbook.Worksheets("FF").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("FF").Sort.SortFields.Add Key:=Range("B83:B112"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("FF").Sort
.SetRange Range("B83:E112")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B121:E150").Select
ActiveWorkbook.Worksheets("FF").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("FF").Sort.SortFields.Add Key:=Range("B121:B150"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("FF").Sort
.SetRange Range("B121:E150")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B2").Select
End Sub
Und nun meine Frage. Wie packe ich die beiden zusammen, das immer nur das aktive Tabellenblatt sortiert wird, und falls dass aktive Tabellenblatt = FF ist das zweite Sortiermakro anstatt dem ersten benutzt wird?

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verschiedene Makros auf versch. Tabellenblätter
16.08.2017 10:33:23
Robert
Hallo Dimi,
frage einfach den Namen des aktiven Blattes ab
If ActiveSheet.Name = "FF" Then
'Dein Code zum sortieren des Tabellenblattes FF
Else
'Dein Code zum sortieren der anderen Tabellenblätter
End If

Gruß
Robert
AW: Verschiedene Makros auf versch. Tabellenblät.
16.08.2017 11:02:50
Dimi
Hi,
danke erstmal für die Antwort.
Habe noch einen kleinen Fehler. Ich weiß nicht wo das "End Sub" hinkommt. Hinter jeden der beiden Codes? Hinter das "End If"?
So siehts bei mir aus und es die Fehlermeldung "End Sub erwartet."
Sub Sortieren()
'
' Sortieren Makro
'
' Tastenkombination: Strg+s
'
If ActiveSheet.Name = "FF" Then
Range("B7:E36").Select
ActiveSheet.Sort.SortFields.Clear
ActiveSheet.Sort.SortFields.Add Key:=Range("B7:B36"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveSheet.Sort
.SetRange Range("B7:E36")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B45:E74").Select
ActiveSheet.Sort.SortFields.Clear
ActiveSheet.Sort.SortFields.Add Key:=Range("B45:B74"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveSheet.Sort
.SetRange Range("B45:E74")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B83:E112").Select
ActiveSheet.Sort.SortFields.Clear
ActiveSheet.Sort.SortFields.Add Key:=Range("B83:B112"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveSheet.Sort
.SetRange Range("B83:E112")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B121:E150").Select
ActiveSheet.Sort.SortFields.Clear
ActiveSheet.Sort.SortFields.Add Key:=Range("B121:B150"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveSheet.Sort
.SetRange Range("B121:E150")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B2").Select
Else
Range("B7:E81").Select
ActiveSheet.Sort.SortFields.Clear
ActiveSheet.Sort.SortFields.Add Key:=Range("B7:B81" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveSheet.Sort
.SetRange Range("B7:E81")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B2").Select
End If
Anzeige
AW: Verschiedene Makros auf versch. Tabellenblät.
16.08.2017 11:14:23
Werner
Hallo Dimi,
habe gerade gesehen, dass du zwei Beiträge zum gleichen Problem hast. Im zweiten Beitrag habe ich die gleich Lösung angeboten wie Robert, nur andersrum aufgezäumt.
Das End Sub gehört ganz ans Ende, wie der Name schon sagt - also nach dem End If.
Einfach mal ausprobieren wäre auch eine Möglichkeit gewesen.
Gruß Werner
AW: Verschiedene Makros auf versch. Tabellenblät.
16.08.2017 11:27:05
Dimi
Ah Danke Werner,
eben gesehen dass ich 2 Threads habe. Warum auch immer :o
Okay dann pack ich den ans Ende.
Sorry ich hab noch nicht wirklich den Überblick in VBA. Wollte es jetzt nicht einfach reinschreiben, am Ende zerschießt mir das ding noch alles :D
Aber jetzt macht das Ding was es soll, Danke euch beiden :)
Anzeige
Gerne u. Danke für die Rückmeldung.
16.08.2017 12:07:12
Werner
Hallo Dimi,
deshalb testet man so was niemals mit der Originaldatei. Immer eine Kopie der Datei anlegen und dann damit testen.
Gruß Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige