dockmaster-de
Goto Top

Sortieren mittels Excel 2003 und Excel 2007

Hallo,

wie ich feststellen musste, ist Sortieren in Excel 2003 und Excel 2007 nicht das gleiche. Ich habe hier eine Code geschrieben der in Excel 2003 funktioniert und bei 2007 nicht.

Private Sub Sort()
 If Application.Version > "11.0" Then  
    '######################################  
    '### Sortierroutine für Excel 2007-2010  
    '######################################  
    ActiveWorkbook("Stand").Unprotect Password:="password"  
    ActiveWindow.SmallScroll Down:=15
    Range("A1:D38").Select  
    ActiveWindow.SmallScroll Down:=-30
    ActiveWorkbook.Worksheets("Stand").Sort.SortFields.Clear  
    ActiveWorkbook.Worksheets("Stand").Sort.SortFields.Add Key:=Range("D1:D38"), _  
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Stand").Sort  
        .SetRange Range("A1:D38")  
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    ActiveSheet.Protect Password:="password"  
Else
    '#####################################  
    '### Sortierroutine für Excel bis 2007  
    '#####################################  
ThisWorkbook.Sheets("Stand").Select  
Dim Sortierspalte As String
Dim Bereich As String
Bereich = "A1:D38"  
Sortierspalte = "D"  
ActiveSheet.Unprotect Password:="password"  
ActiveSheet.Range(Bereich).Sort _
 Key1:=Range(Sortierspalte & "1"), Order1:=xlDescending, _  
 Header:=xlGuess, MatchCase:=False, _
 Orientation:=xlTopToBottom
 ActiveSheet.Protect Password:="password"  
 End If
End Sub

Da ich kein Programmierer bin, komme ich nicht weiter.
Habt ihr eine Lösung?

have a nice day...

DockM@ster

[Edit Biber] Codeformatierungs-Tags angepasst [/Edit]

Content-ID: 168071

Url: https://administrator.de/contentid/168071

Ausgedruckt am: 20.11.2024 um 15:11 Uhr

Clijsters
Clijsters 15.06.2011 um 19:25:13 Uhr
Goto Top
Hallo,

wie ich feststellen musste, ist Sortieren in Excel 2003 und Excel 2007 nicht das gleiche. Ich habe hier eine Code geschrieben der in Excel 2003 funktioniert und bei 2007 nicht.
könntest du das genauer definieren?


Gruß
Dominique
DockMaster-de
DockMaster-de 15.06.2011 um 20:45:06 Uhr
Goto Top
Wenn ich mit Excel2003 arbeite springt es in die Subroutine für Excel 2003 und druckt das Blatt. Arbeite ich aber mit Excel 2007 wird die Subroutine für Excel 2007 ausgeführt und es bleibt bei ActiveWorkbook("Stand").Unprotect Password:="password" stehen. Fehlermeldung 40036.

Was ich suche ist eine Sortierroutine für Excel 2007.


have a nice day...

DockM@ster
Clijsters
Clijsters 15.06.2011 um 22:11:52 Uhr
Goto Top
und es bleibt bei ActiveWorkbook("Stand").<b>Unprotect</B Password:="password" stehen. Fehlermeldung 40036.
Finde den Unterschied ;)
Zeile 21. ActiveSheet.Protect Password:="password"

Unabhängig davon, ersetze doch mal
ActiveSheet.Protect Password:="password"   
durch
MsgBox ActiveSheet.Name
Tritt der Fehler dann auch auf?

Idee sollte der Fehler auch in der messagebox auftreten:

  • Nimm den Inhalt des Sheets, auf welches du die Routine anwendest und kopiere ihn in ein neues Sheet. tritt der Fehler auch hier auf?
  • Wenn du ausschließlich sortieren möchtest, brauchst du das protect? - Ansonsten würde ich sagen, weg damit, auskommentieren oder Behebt alle meine Probleme ;) "on error resume next" Wobei ich hier schon eine Fehlerüberprüfung einbauen würde.
Das Verwenden oder nicht verwenden des protect könntestt du in dem Fall auch von der Version abhängig machen oder irre ich mich?


Gruß
Dominique
DockMaster-de
DockMaster-de 15.06.2011 um 22:21:50 Uhr
Goto Top
Problem habe ich gelöst!

Private Sub Sort()
If Application.Version > "11.0" Then
'######################################
'### Sortierroutine für Excel 2007-2010
'######################################
Tabelle15.Unprotect Password:="password"
Range("A1:D38").Sort Key1:=Range("D1"), Order1:=xlDescending, Key2:=Range("C1")
Tabelle15.Protect Password:="password"
MsgBox "Rangliste wurde aktuallisiert!", vbOKOnly, "Information"
Else
'#####################################
'### Sortierroutine für Excel bis 2007
'#####################################
ThisWorkbook.Sheets("Stand").Select
Dim Sortierspalte As String
Dim Bereich As String
Bereich = "A1:D38"
Sortierspalte = "D"
ActiveSheet.Unprotect Password:="password"
ActiveSheet.Range(Bereich).Sort _
Key1:=Range(Sortierspalte & "1"), Order1:=xlDescending, _
Header:=xlGuess, MatchCase:=False, _
Orientation:=xlTopToBottom
ActiveSheet.Protect Password:="password"
End If
End Sub

have a nice day...

DockM@ster