Microsoft Excel

Herbers Excel/VBA-Archiv

Makro Problem | Herbers Excel-Forum


Betrifft: Makro Problem von: Michel
Geschrieben am: 14.01.2010 11:50:40

Hallo zusammen! Ich bitte um Eure Hilfe!
nachdem ich folgende Makro erweitert habe (mit Key4), funktioniert nicht mehr.
Frage: Sind nur maximum 3 Keys möglich? Wenn ja, was gibt es für Möglichkeit?

Sub Katalog_sortieren()
Sheets("Katalog").Activate
Range("G14:V800").Select
Selection.Sort Key1:=Range("G14"), Order1:=xlAscending, Key2:=Range("H14") _
, Order2:=xlAscending, Key3:=Range("I14"), Order3:=xlAscending, Key4:=Range("K14"), Order4: _
x1Ascending, Header _ 
:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("G14").Select
Sheets("Alle Bestellungen").Activate
Range("A1").Select
End Sub

Ich wäre sehr dankbar für eine Lösung. Im voraus besten Dank
Michel

  

Betrifft: Nur 3 Kriterien möglich von: Rudi Maintaire
Geschrieben am: 14.01.2010 11:56:04

Hallo,
das geht von Hand ja auch nicht anders.
Bau das Kriterium in einer Hilfsspalte zusammen und sortiere danach.

Gruß
Rudi


  

Betrifft: Ja, Sortierung nur nach 3 Spalten möglich ! von: NoNet
Geschrieben am: 14.01.2010 11:57:42

Hallo Michel,

wie in Excel selbst ("Daten - Sortieren") ist auch per VBA nur eine (gleichzeitige) Sortierung nach maximal 3 Spalten möglich !
Du kannst Dein Zeil jedoch mit 2 Sortiervorgängen erreichen :

- zuerst nach der "unwichtigsten" Spalte (Key 4 ) sortieren
- dann nach Key, Key2, Key 3 sortieren

Sub Katalog_sortieren()
Sheets("Katalog").Activate

Range("G14:V800").Sort  Key1:=Range("K14"), Order1:xlAscending, Header _ 
:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("G14:V800").Sort Key1:=Range("G14"), Order1:=xlAscending, Key2:=Range("H14") _
, Order2:=xlAscending, Key3:=Range("I14"), Order3:=xlAscending

Range("G14").Select
Sheets("Alle Bestellungen").Activate
Range("A1").Select
End Sub
Weiterhin solltest Du beachten, die richtigen XL-Konstanten zu verwenden : Es heißt xlAscending und nicht x1Ascending !!

Gruß, NoNet


  

Betrifft: AW: Makro Problem von: Josef Ehrensberger
Geschrieben am: 14.01.2010 12:00:17

Hallo Michel,

erst nach dem 4. Kriterium sortieren, danach nach den anderen.

Sub Katalog_sortieren()
  With Sheets("Katalog")
    
    .Range("G14:V800").Sort Key1:=.Range("K14"), Order1:=xlAscending, _
      Header:=xlYes
    
    .Range("G14:V800").Sort Key1:=.Range("G14"), Order1:=xlAscending, _
      Key2:=.Range("H14"), Order2:=xlAscending, _
      Key3:=.Range("I14"), Order3:=xlAscending, _
      Header:=xlYes
    
  End With
  
End Sub



Gruß Sepp



  

Betrifft: AW: Makro Problem von: Michel
Geschrieben am: 14.01.2010 14:15:15

Es hat geklappt! habe als erst die Lösung v. Sepp probiert es hat schon funktioniert. Vielen Dank an alle.
Super Forum
Michel


Beiträge aus den Excel-Beispielen zum Thema "Makro Problem"