Microsoft Excel

Herbers Excel/VBA-Archiv

Was ist an diesem Makro falsch? | Herbers Excel-Forum


Betrifft: Was ist an diesem Makro falsch? von: Jens-Claus
Geschrieben am: 08.02.2012 10:55:29

Hallo Excelfreunde,

ich habe das nachstehende < Makro1 > mit dem Makrorekorder aufgezeichnet. Die Sortierung nach dem Feld ist als Makro für spätere Teilergebnisse gedacht. Wenn ich das aufgezeichnete Makro laufen lassen funktioniert dies auch einwandfrei. Da, jedoch Daten ergänzt werden können, habe ich das Makro
< SortTeilergebnisse > erstellt mit der variablen < z >.
Wenn ich dieses Makro laufen lasse, kommt eine Fehlermeldung und die Zeile < .Apply > ist gelb hinterlegt.
Ich habe das Makro mit Office 2010 aufgezeichnet, möchte es jedoch an einen Unser weitergeben, der noch mit der Version 2003 arbeitet.
Was mache ich falsch?

Sub Makro1()

    Application.Goto Reference:="R8C1"
    Range("A8:S212").Select
    ActiveWorkbook.Worksheets("Verdichtung").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Verdichtung").Sort.SortFields.Add Key:=Range( _
        "A9:A212"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("Verdichtung").Sort
        .SetRange Range("A8:S212")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("A10").Select
End Sub




Sub SortTeilergebnisse()
    Application.Goto Reference:="R10C1"
        Selection.End(xlDown).Select
   z = ActiveCell.Row
 
    Range("A8:s" & z).Select
    ActiveWorkbook.Worksheets("Verdichtung").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Verdichtung").Sort.SortFields.Add Key:=Range( _
        "A9:s" & z), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("Verdichtung").Sort
        .SetRange Range("A8:S" & z)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("A10").Select
    
    End Sub

  

Betrifft: AW: Was ist an diesem Makro falsch? von: Rudi Maintaire
Geschrieben am: 08.02.2012 11:21:29

Hallo,
Was mache ich falsch?
Du solltest alles immer in der niedrigsten benötigten Version entwickeln.
In 2003 funktioniert die Sortierung so nicht.

Sub SortTeilergebnisse()
  Dim z As Long
  With Sheets("Verdichtung")
    z = Range("A10").End(xlDown).Row
    Range("A8:s" & z).Sort key1:=Range("A9"), order1:=xlAscending, header:=xlYes
  End With
End Sub

Gruß
Rudi


  

Betrifft: AW: Was ist an diesem Makro falsch? von: Jens-Claus
Geschrieben am: 08.02.2012 12:01:06

Hallo Rudi,

herzlichen Dank jetzt klappt die Sortierung.
Allerdings gibt es bei dem nachfolgenden Makro für die Teilergebnisse eine Besonderheit.
Zwischen den Teilergebnisse und der Zeile Gesamtergebnis sind über 200 Leerzeilen.
Hast du eine Lösung wie man das verhindern kann?

Besten Dank im voraus für Hilfe.

Jens

Sub Teilergebnisse_A()

    Application.Goto Reference:="R8C1"
    Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(2, 3, 4, 5, _
        7, 8, 10, 11, 13, 14, 16, 17, 19), Replace:=True, PageBreaks:=False, _
        SummaryBelowData:=True
    ActiveSheet.Outline.ShowLevels RowLevels:=2
   
End Sub



  

Betrifft: AW: Was ist an diesem Makro falsch? von: Rudi Maintaire
Geschrieben am: 08.02.2012 16:18:26

Hallo,
wirklich Leerzeilen?
Hast du eine Lösung wie man das verhindern kann?
Ich kenne deine Mappe nicht.

Gruß
Rudi


  

Betrifft: AW: Was ist an diesem Makro falsch? von: Jens-Claus
Geschrieben am: 09.02.2012 10:52:56

Hallo Rudi,

wäre es möglich, dass ich dir die Datei zumaile.
Das wäre super.

Gruß Jens


  

Betrifft: du kannst sie hier hochladen. owT von: Rudi Maintaire
Geschrieben am: 09.02.2012 16:12:27




Beiträge aus den Excel-Beispielen zum Thema "Was ist an diesem Makro falsch?"