Projektanfrage

Projektanfrage über Web Formular   per Online-Formular 
Projektanfrage über E-Mail  Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!
Projektanfrage per Telefon  +49 (0)151 / 164 55 914
Projektanfrage weitere Informationen  weitere Informationen 

Sie benötigen Hilfe oder Unter-stützung? Nutzen Sie für Ihre Anfrage unser Online-Formular, senden Sie uns eine Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! oder rufen Sie uns einfach an.

   
      Referenzen 

 Bosch 
  T-Systems
  Hagebau
  Siemens
 Areva  VW
 Haufe-Lexware  British American Tobacco
  nagel group farbe
   
     Programmierung
Excel Auftragsprogrammierung Access Auftragsprogrammierung
Word Auftragsprogrammierung Outlook Auftragsprogrammierung
   
   

Projektanfrage

 Sie benötigen eine Auftragsprogrammierung?
 Oder suchen Unterstützung bei der Lösungs-
 findung?

  Nutzen Sie unser Anfrageformular

  Jetzt anrufen unter 0151 / 164 55 914

 Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! Projektanfrage per Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! senden

  Weitere Informationen

sitepanel question2

P
r
o
j
e
k
t
a
n
f
r
a
g
e
   

Sortieren einer Tabelle per VBA mit mehr als 3 Kriterien

Anbei ein kleines Beispiel für das Sortieren einer Tabelle per VBA mit mehr als 3 Kriterien. Es wird sowohl das auf- als auch das absteigende Sortieren demonstriert.

Bis Excel 2003 ist die Anzahl der Sortierkriterien auf 3 beschränkt, siehe Abb.

Dieses VBA-Makro sortiert eine Liste mit 4 bzw. 5 Sortierkriterien. Den Code zur aufsteigenden Sortierung anhand von 4 Kriterien sehen Sie im nachfolgenden Listing.

Sub Sortieren_mit_4Kriterien() 'Wkn / ManNr / GerätNr / StartReihenfolge
    Dim intZeile%, strSpalte$, intLastRow%, strSortRange$
    Dim ceManNr$, ceWKN$, ceGerätNr$, ceStartreihenfolge$, ceNachname$, ceVorname$
 
    On Error GoTo ende
    
    intZeile = ActiveSheet.Range("A:G").Find(What:="Vorname").Row + 1<br />    strSpalte = Chr(ActiveSheet.Range("A:G").Find(What:="Vorname").Column + 64)<br />    intLastRow = Cells(Rows.Count, 1).End(xlUp).Row<br />    strSortRange = "$A$" & intZeile & ":$" & strSpalte & "$" & intLastRow<br />    <br />    ceManNr = Chr(ActiveSheet.Range("A:G").Find(What:="ManNr").Column + 64) & intZeile<br />    ceWKN = Chr(ActiveSheet.Range("A:G").Find(What:="WKN").Column + 64) & intZeile<br />    ceGerätNr = Chr(ActiveSheet.Range("A:G").Find(What:="GerätNr").Column + 64) & intZeile<br />    ceStartreihenfolge = Chr(ActiveSheet.Range("A:G").Find(What:="Startreihenfolge").Column + 64) & intZeile<br />    ceNachname = Chr(ActiveSheet.Range("A:G").Find(What:="Nachname").Column + 64) & intZeile<br />    ceVorname = Chr(ActiveSheet.Range("A:G").Find(What:="Vorname").Column + 64) & intZeile<br /> <br />    Application.ScreenUpdating = </span><span style="color: #0000ff;">False
    
    With ActiveSheet
       Range(strSortRange).Sort _
          Key1:=.Range(ceStartreihenfolge), Order1:=xlAscending, Header:=xlGuess
            '1=Sortierkriterium 4 = Startreihenfolge
       Range(strSortRange).Sort _
          Key1:=.Range(ceWKN), Order1:=xlAscending, _
          Key2:=.Range(ceManNr), Order2:=xlAscending, _
          Key3:=.Range(ceGerätNr), Order3:=xlDescending, Header:=xlGuess
            '1=Sortierkriterium 1 = Wkn
            '2=Sortierkriterium 2 = ManNr
            '3=Sortierkriterium 3 = GerätNr
    End With
 ende:
    Application.ScreenUpdating = True
 End Sub 

In der Datei, welche Sie herunterladen können, ist auch der Code für das Sortieren mit 5 Kriterien enthalten.

Ab Excel 2007 ist der Zusatzcode nicht mehr notwendig, da ab dieser Version bis zu 64 Sortierkriterien standardmäßig unterstützt werden, siehe folgende Abbildung.



   

Relevante Artikel

  • Autofilter mit mehreren Kriterien

    Ab Excel 2007 können in einem Filter beliebige Filterkriterien manuell vorgegeben werden, indem die gewünschten Werte im Filterdialog an- oder abgehakt werden. Als Ausgangsbasis dient eine kleine...

  • Zeilen (Einträge) abhängig vom Datum löschen

    101070 Aus diesem Datenbestand sollen die Zeilen gelöscht werden, deren Datum in Spalte A imMonat November liegt.     A B C D 1 12.08.2002 daten daten daten 2 15.08.2002 daten daten daten 3 20.08.2002...

  • Cells- zur Range-Schreibweise umwandeln

    101005   Mit dieser Funktion können Sie die die Cells-Schreibweise, z. B. Cells(1, 2) in die Range-Schreibweise z. B. Range("B1") umwandeln.   Sub umwandeln() Adresse = Cells2Range(1, 1) MsgBox Adresse End...

  • Bilder in Zellen importieren

    Per VBA lassen sich Bilder aus einem angegebenen Verzeichnis auslesen und importieren. Die vorgestellte Prozedur liest die Bilder aus dem eingestellten Verzeichnis "F:\Pic" aus. Die im Verzeichnis...

  • Trennen von Zellinhalten - Text in Spalten

    Dieses Beispiel zeigt, wie Zellinhalte die sich fortlaufend in einer Zelle befinden getrennt werden können. Voraussetzung ist, dass die einzelnen Elemente durch ein beliebiges Trennzeichen separiert wurden,...