Hallo.
Kenne mich nicht so gut im VBA aus. Bei meinem Code möchte ich nicht nur die Tabelle1 bearbeiten/sortieren, sondern das aktive Arbeitsblatt wo ich mich befinde. Das ist der jetzige Code zum Alphabetischen sortieren in einer Tabelle:
Sub hoch()
'
' hoch Makro
'
' Tastenkombination: Strg+h
'
ActiveSheet.Unprotect "qwertz"
ActiveWorkbook.Worksheets("Tabelle1").ListObjects("Tabelle1").Sort. \_
SortFields.Clear
ActiveWorkbook.Worksheets("Tabelle1").ListObjects("Tabelle1").Sort. \_
SortFields.Add Key:=ActiveCell, SortOn:=xlSortOnValues, Order:= \_
xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Tabelle1").ListObjects("Tabelle1").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveSheet.Protect "qwertz"
End Sub
Vielen Dank im voraus.
Danny.
Grüezi Danny
Aha - mein Hinweis hier http://www.office-loesung.de/ftopic566802_0_0_asc.ph…
scheint also geholfen zu haben - schade, dass Du dich dort nicht zurückmeldest, das ist nicht nett 
Ich habe versucht deinen Code umzuschreiben und etwas schöner zu strukturieren. Teste mal ob das so passt und gib diesmal bitte Feedback.
Sub hoch()
'
' hoch Makro
'
' Tastenkombination: Strg+h
'
With ActiveSheet
.Unprotect "qwertz"
.ListObjects("Tabelle1").Sort.SortFields.Clear
.ListObjects("Tabelle1").Sort.SortFields.Add \_
Key:=ActiveCell, \_
SortOn:=xlSortOnValues, \_
Order:=xlAscending, \_
DataOption:=xlSortNormal
With .ListObjects("Tabelle1").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
.Protect "qwertz"
End With
End Sub
Mit freundlichen Grüssen
Thomas Ramel
Hallo.
Ohh, das tut mir leid. Kommt nicht wieder vor.
Also leider funktioniert dein Vorschlag nicht. Beim ersten Blatt alles Super, doch beim 2-5 Blatt bringt er beim raus sortieren den Laufzeitfehler 9 (Index außerhalb des gültigen Bereichs). Hast du noch Ideen?
Mit freundlichen Grüßen
Danny.
Grüezi Danny
Ohh, das tut mir leid. Kommt nicht wieder vor. 
…Schaun wir mal…
Also leider
funktioniert dein Vorschlag nicht. Beim ersten Blatt alles
Super, doch beim 2-5 Blatt bringt er beim raus sortieren den
Laufzeitfehler 9 (Index außerhalb des gültigen Bereichs). Hast
du noch Ideen?
Passe deine anderen Tabellenblätter so an, dass sie dem ersten entsprechen.
Welche Zeile im VBA-Editor wird denn markiert, wenn Du auf [Debuggen] klickst?
Gibt es da jeweils eine Liste/Tabelle mit dem Namen ‚Tabelle1‘, oder heissen die dort anders?
Mit freundlichen Grüssen
Thomas Ramel
Also als Fehler wird markiert:
.ListObjects(„Tabelle1“).Sort.SortFields.Clear
Nein, die Blätter haben die Namen:
Massebereitung
Teigbereitung
Teigteiler und VGS
Langroller und HGS
Durchlaufofen
Abteilungsleiter
Bei Massebereitung funktioniert der Code, bei den anderen nicht.
ListObjects auflisten lassen
Also als Fehler wird markiert:
.ListObjects(„Tabelle1“).Sort.SortFields.Clear
Hallo Danny,
lass mal das nachfolgende Makro laufen, vllt. hilfts.
Es sollte dir alle ListObjects auf einem neuen Blatt auflisten.
Gruß
Reinhard
Option Explicit
Sub tt()
Dim Zei As Long, N As Integer, L As Integer, wksNeu As Worksheet
With ThisWorkbook
.Worksheets.Add after:=.Worksheets(.Worksheets.Count)
Set wksNeu = .Worksheets(.Worksheets.Count)
wksNeu.Range("A1:C1") = Split("Blatt Tabelle Bereich")
Zei = 1
For N = 1 To Worksheets.Count - 1
With .Worksheets(N)
Zei = Zei + 1
wksNeu.Cells(Zei, 1).Value = .Name
If .ListObjects.Count \> 0 Then
For L = 1 To .ListObjects.Count
wksNeu.Cells(Zei, 2).Value = .ListObjects(L).Name
wksNeu.Cells(Zei, 3).Value = .ListObjects(L).Range.Address(0, 0)
Zei = Zei + 1
Next L
Zei = Zei - 1
End If
End With
Next N
End With
End Sub
Aja okay. Das wären dann:
Massebereitung Tabelle1 B4:L10
Teigbereitung Tabelle13 B4:L10
Teigteiler und VGS Tabelle14 B4:L12
Langroller und HGS Tabelle15 B4:L16
Durchlaufofen Tabelle17 B4:L11
Abteilungsleiter Tabelle16 B4:L7
Schutztabelle
Wahrscheinlich steh ich auf dem Schlauch, aber in wieweit bringt mir das dann was, oder kannst du mit den Daten was anfangen?
Grüße aus Brotterode.
Massebereitung Tabelle1 B4:L10
Teigbereitung Tabelle13 B4:L10
Teigteiler und VGS Tabelle14 B4:L12
Langroller und HGS Tabelle15 B4:L16
Durchlaufofen Tabelle17 B4:L11
Abteilungsleiter Tabelle16 B4:L7
Schutztabelle
Wahrscheinlich steh ich auf dem Schlauch, aber in wieweit
bringt mir das dann was, oder kannst du mit den Daten was
anfangen?
Hallo Feets,
ja stehst drauf. Thomas hat ja zu Recht gefragt:
„Gibt es da jeweils eine Liste/Tabelle mit dem Namen ‚Tabelle1‘, oder heissen die dort anders?“
In deinem/Thomas Code wird ja ja nach der Tabelle mit dem Namen
„Tabelle1“ gesucht. Da dieser Tabellenanme nur im ersten Blatt
existiert kommt bei den anderen Blätter natürlich Fehler 9.
Bin grad unterwegs, schnelle Nothilfe, tausche mal
.ListObjects(„Tabelle1“)
gegen
.ListObjects(1)
Dann kommt Fehler 9 nur noch bei Blatt Schutztabelle.
Gruß
Reinhard
Jaaa…es geht!!!
Vielen Dank dafür.
(ihr werdet leider häufiger noch von mir hören)
Grüße und einen angenehmen Sonntag!