Winfried,
Ich bin kein Makroexperte (um zu untertreiben). Verstehe ich richtig, dass das Makro mit der Zeile Sub sortTabellen anfängt und mit dem zweiten EndSub aufhört ?

Dann eine Frage an die Winfired und Hohe Behörde: könnte dieses Makro nicht der Allgemeinheit zur Verfügung gestellt werden, auf der Webseite ?

MfG
F. Thomas

Winfried Rohr wrote:

Ist eine alphabetische Sortierung möglich? Wenn ja - wie?
Automatisch nur mit einem Makro. Ansonsten kannst Du die

Kleine Übung für den Abend?


@Rebecca: ausschneiden, in eine Standard-Bibliothek kopieren (Achtung
wg. der Zeilenumbrüche/-enden beim Kopieren), aufrufen.

HTH
Winfried

=================
Sub sortTabellen

' oDok = ThisComponent

If Not oDok.supportsService(_
       "com.sun.star.sheet.SpreadsheetDocument" ) Then
       MsgBox _
       "Makro wurde nicht von einem Calc-Dokument aufgerufen." & CHR(10) _
       & CHR(10) & "Erklärung:" _
       & CHR(10) & "Dieses Makro sortiert die Tabellen eines Calc-Dokuments
so," _
       & CHR(10) & "dass die Blätter nach ihrem Namen alphabetisch geordnet
werden." _
       & CHR(10) _
       & CHR(10) & "Makro """ & Trim(sModulName) & """ wird nun beendet." _
       , 48 , sModulName & sModulVersion       ' 48: Achtung Symbol
Exit Sub
End If


' get array of table names
oTabellenNamen = oDok.getSheets().getElementNames()
' call routine to sort names
ShellSort( oTabellenNamen )

' arrange sheets
for i = LBound( oTabellenNamen ) to UBound ( oTabellenNamen ) - 1
       oDok.getSheets().moveByName( oTabellenNamen(i), i )
next i

End Sub

' ===================================================================
REM B Marcelly 2005-06-04
REM http://www.oooforum.org/forum/viewtopic.phtml?t=20783

Sub ShellSort(myList())
Dim k1 As Long, k2 As Long, listSize As Long
Dim x1 As Long, isSorted As Boolean
Dim swapping
listSize = UBound(myList()) +1 -LBound(myList())
k1 = Fix(listSize /2)
do while k1 > 0
 k2 = UBound(myList()) - k1
 isSorted = true
 for x1 = LBound(myList()) to k2
   if StrComp(myList(x1), myList(x1 +k1), 0) = 1  then
     swapping = myList(x1)
     myList(x1) = myList(x1 +k1)
     myList(x1 +k1) = swapping
     isSorted = false
   end if
 next
 if isSorted then
   k1 = Fix(k1 /2)
 end if
loop
End Sub



--
....................................................................
Dr. Frank Thomas
FTR Internet Research
93110 Rosny-sous-Bois
France
<A HREF="CALLTO://Frank_Thomas"><IMG>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Antwort per Email an