Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1068to1072
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

Makro für aufsteigend sortieren

Makro für aufsteigend sortieren
27.04.2009 09:32:45
Jeron
Hallo zusammen,
ich würde gerne die Spalte B, nach Lagerartikelnummer = Überschrift in B2 absteigend sortieren.
Das Makro soll generell immer die gesamte Spalte B bearbeiten.
Ich habe es mit dem Makro-Recorder ausprobiert. Aber mir zerschießt es die Tabelle bei erneutem Versuch.
Kann mir bitte jemand helfen?
Vielen Dank.

Sub Sortieren ()
Range("B2").Select
Range("A1:N266").Sort Key1:=Range("B3"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub


Viele Grüße aus München
Jeron Bitto

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro für aufsteigend sortieren
27.04.2009 09:39:21
Tino
Hallo,
versuche es mal so.
Wenn in Zeile 2 die Überschrift ist so
Range("A2:N266").Sort Range("B2"), xlAscending, , , , , , xlYes
Wenn in Zeile 2 nicht die Überschrift ist
Range("A2:N266").Sort Range("B2"), xlAscending, , , , , , xlNo
Gruß Tino
AW: Makro für aufsteigend sortieren
27.04.2009 10:31:19
Jeron
Hallo Tino,
aus deinen Angaben kann ich leider nicht alles umsetzen. Das Problem ist auch, dass unterschiedliche Längen der Spalten mit berücksichtigt weren müssen. Ich also nicht immer von A1:N266 ausgehen kann.
Ich habe es mit nachfolgenden Makro probiert und es zerschießt mir wieder die Tabelle. hast du einen weiteren Tip für mich?

Sub Sortieren()
' Makro1 Makro
' Makro am 27.04.2009 von Jeron Bitto aufgezeichnet
If Worksheets(1).Cells(2, 2).Value = "Lagerartikelnummer" Then
Range("B2").Select
Range("A1:N258").Sort Key1:=Range("B3"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Else: Worksheets(1).Cells(1, 2).Value = "nichtmöglich"
End If
End Sub


Anzeige
AW: Makro für aufsteigend sortieren
27.04.2009 10:55:14
Tino
Hallo,
versuche es mal so.
Im Beispiel gehe ich davon aus, dass die Überschrift sich in Zeile 2 befindet.
Sub Sortieren()
Dim SortSpalte As Range

With Worksheets(1)
    'in Zeile 2 befindet sich die Überschrift !!!!! 
    'Suche nach Lagerartikelnummer in Zeile 2, Groß u. Kleinschreibung wird beachtet 
    Set SortSpalte = .Rows(2).Find("Lagerartikelnummer", , xlValues, 1, 1, 1, True, False)
    
    If Not SortSpalte Is Nothing Then
     .Range("A2:N" & .Rows.Count).Sort SortSpalte, xlAscending, , , , , , xlYes
    Else
     MsgBox "Spalte ""Lagerartikelnummer"" wurde nicht gefunden!", vbCritical
    End If

End With
End Sub


Gruß Tino

Anzeige
Spalten auch unbekannt...
27.04.2009 11:13:11
Tino
Hallo,
ist auch die Anzahl der Spalten unbekannt, kannst Du es auch so machen.
Sub Sortieren()
Dim SortSpalte As Range

With Worksheets(1)
    'in Zeile 2 befindet sich die Überschrift !!!!! 
    'Suche nach Lagerartikelnummer in Zeile 2, Groß u. Kleinschreibung wird beachtet 
    Set SortSpalte = .Rows(2).Find("Lagerartikelnummer", , xlValues, 1, 1, 1, True, False)
        
    If Not SortSpalte Is Nothing Then
     .Range("A2", .Cells(.Rows.Count, .Columns.Count)).Sort SortSpalte, xlAscending, , , , , , xlYes
    Else
     MsgBox "Spalte ""Lagerartikelnummer"" wurde nicht gefunden!", vbCritical
    End If

End With

End Sub


Gruß Tino

Anzeige
AW: Makro für aufsteigend sortieren
27.04.2009 11:15:12
Jeron
Hallo Tino,
es funktioniert glaub ich so richtig gut. Ich danke dir erstmal für dein Know How und deine Mühe.
Ich habe nur noch ein kleines Problem,
.Range("A2:N" & .Rows.Count).Sort SortSpalte, xlAscending, , , , , , xlYes
in dieser Zeile tritt ein Bug auf auf " Für diese Aktion müssen alle verbundenen Zellen die selbe Größe haben"
Hast du eine Ahnung wie ich dieses Problem in den Griff bekomme?
Viele Grüße
Jeron
AW: Makro für aufsteigend sortieren
27.04.2009 11:23:48
Tino
Hallo,
"Hast du eine Ahnung wie ich dieses Problem in den Griff bekomme?"
Ja habe ich, keine verbundenen Zellen verwenden. ;-)
Gruß Tino
Anzeige
verbundene Zellen aufheben...
27.04.2009 11:32:06
Tino
Hallo,
verbundene Zellen kannst Du im Bereich z. Bsp. so aufheben.
Sub Sortieren()
Dim SortSpalte As Range

With Worksheets(1)
    'in Zeile 2 befindet sich die Überschrift !!!!! 
    'Suche nach Lagerartikelnummer in Zeile 2, Groß u. Kleinschreibung wird beachtet 
    Set SortSpalte = .Rows(2).Find("Lagerartikelnummer", , xlValues, 1, 1, 1, True, False)
    
    If Not SortSpalte Is Nothing Then
     .Range("A2", .Cells(.Rows.Count, .Columns.Count)).MergeCells = False
     .Range("A2", .Cells(.Rows.Count, .Columns.Count)).Sort SortSpalte, xlAscending, , , , , , xlYes
    Else
     MsgBox "Spalte ""Lagerartikelnummer"" wurde nicht gefunden!", vbCritical
    End If

End With
End Sub


Gruß Tino

Anzeige
AW: Makro für aufsteigend sortieren
27.04.2009 10:56:35
zu
hi,
sollte nicht bei A2 begonnen werden?
statt
Range("A1:N258")
Range("A2:N258") usw..
gruß
robert
AW: Makro für aufsteigend sortieren
27.04.2009 11:23:50
Jeron
Hallo zusammen,
ich habe das Problem selbst gefunden.
Ich frage mich gerade ob es ein Makro gibt, dass das Tabellenblatt auf verbundene Zellen überprüft und dann auflöst ?
Einen schönen Tag.
@ Thorsten das Problem ist gelöst.
@ Tino: Danke Dir noch mal!!
Viele Grüße
Jeron
AW: Makro für aufsteigend sortieren
27.04.2009 11:49:40
robert
hi,
vermeide einfach verbundene zellen, diesen tipp findest du hier im forum immer wieder-
statt dessen-
format-zellen-ausrichtung-horizontal-über auswahl zentrieren-
probier es einmal
gruß
robert
Anzeige

93 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige