Excel - Spalten formatieren

Dieses Thema Excel - Spalten formatieren im Forum "Windows XP Forum" wurde erstellt von wak66, 30. Dez. 2006.

Thema: Excel - Spalten formatieren Hi, ich möchte in einer Tabelle die Spalten sortieren können. Ähnlich wie im Outlook Express, wo ich den Inhalt im...

  1. Hi,
    ich möchte in einer Tabelle die Spalten sortieren können. Ähnlich wie im Outlook Express, wo ich den Inhalt im Posteingang entweder nach Datum auf u. absteigend, nach Absender alphabetisch auf u. absteigend u.s.w. sortieren kann indem ich eine Schaltfläche in der Überschrift der Spalte anklicke. Im Moment muß ich den gesamten Tabellinhalt markieren und über Fkt: Sortieren neu anordnen. Wenn ich eine Zeile, oder Spalte nicht mitmarkieren geht der ganze Bezug der Tabelle verloren. :|
     
  2. Hallo,

    mit folgendem Code wird die Spalte über ein Inputbox abgefragt. Folgende Kriterien werden geprüft:

    1. Tabellenlänge wird anhand Spalte 1 geprüft!
    2. Tabellenbreite anhand von Zeile 2
    3. Es wird erst ab Zeile 2 sortiert (Überschriften in Zeile 1)

    Es ist eine recht grobe Lösung ohne Komfort aber sie tut ihren Zweck. Wenn du doch etwas feintuning
    brauchst sag bescheid.

    Code:
    Sub Sortieren()
    Dim Spalte As Byte
    
    On Error Resume Next
    
    Spalte = 0
    
    Spalte = InputBox( _
    Nach welcher Spalte wollen sie sortieren? & Chr(13) & Chr(13) & _
    (bitte Nr. eingeben 1, 2, ...,  & Cells(2, 256).End(xlToLeft).Column & ), Sortieren nach)
    
    If Spalte = 0 Or Spalte > Cells(2, 256).End(xlToLeft).Column Then
        MsgBox Falsche Eingabe! Bitte probieren sie es erneut!, vbCritical + vbOKOnly, Fehler
        Exit Sub
            Else
                ActiveSheet.Range(Cells(2, 1), Cells(Cells(65536, 1).End(xlUp).Row, _
                Cells(2, 256).End(xlToLeft).Column)).Sort Key1:=Columns(Spalte) _
                , Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
                MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
    End If
    End Sub
    
    Ciao


    Fibo
     
  3. Hallo zusammen,

    Voraussetzung ist: Die Überschriftenzeile enthält Überschriften

    Folgenden Code in ein Modul der Mappe packen:
    Code:
    Option Explicit
    Option Private Module
    
    'Merker für letzten Sortiermodus der Spalte
    Dim lColAufsteigend(1 To 256) As Boolean
    
    Function BlattSortieren(ws As Worksheet, lRow As Long, lCol As Long)
        
      Dim lCols As Long, lRows As Long, lRowsAkt As Long, x As Long
      
     ->Spaltenanzahl der Tabelle aus lRow
      lCols = ws.Cells(lRow, ws.Columns.Count).End(xlToLeft).Column
      
     ->größte benutzte Zeilenanzahl der Spalten feststellen
      lRows = 0
      For x = 1 To lCols
        lRowsAkt = ws.Cells(ws.Rows.Count, x).End(xlUp).Row
        If lRowsAkt > lRows Then lRows = lRowsAkt
      Next
      
     ->Wenn nicht mindestens 2 Zeilen zu sortieren sind Hinweis
      If lRows < lRow + 2 Then MsgBox Gibt nichts zu sortieren: Exit Function
      
     ->Sortieren abhängig von letzter Sortierung der spalte
      With ws.Range(ws.Cells(lRow + 1, 1), ws.Cells(lRows, lCols))
        If lColAufsteigend(lCol) Then
          .Sort Key1:=ws.Cells(lRow + 1, lCol), Order1:=xlDescending, Header:=xlNo
          lColAufsteigend(lCol) = False
        Else
          .Sort Key1:=ws.Cells(lRow + 1, lCol), Order1:=xlAscending, Header:=xlNo
          lColAufsteigend(lCol) = True
        End If
      End With
    End Function
    Jetzt zu den Button:
    a) Die Visual-Basic-Symbolleiste sichtbar machen
       (Ansicht->Symbolleisten->Visual Basic)
    b) 1. Button setzen
    b1) Auf der Visual-Basic-Symbilleiste->Hammer&Schraubenschlüssel' anklicken
    b2) Auf der Werkzeugpalette den Command-Button auswählen
    b3) Mit dem Cusor in die 1. Überschriften-Zelle einen Command-Button aufziehen (Größe so einrichten, daß auf jeden fall die linke obere Ecke in der Zelle liegt.
    b4) Command-Button mit rechter Maus anklicken -> Steuerelement formatieren->Eigenschaften->von Zellposition und -größe abhängig setzen, dann OK
    b5) Command-Button mit rechter Maus anklicken -> Eigenschaften
    b5.1) unter Caption Überschrift eintragen
    b5.2) TakeFocusOnClick auf False setzen

    b2 -  b5.2 für alle weiteren Überschriften analog anwenden

    b6) für Command-Button Code einfügen
    b6.1) Doppelklick auf Command-Button
    der Cusor steht in einer Eignisprozedur der Form
    Code:
    Private Sub CommandButton4_Click()
    
    End Sub
    b6.2) Hier den folgenden Code eingeben
    Code:
    Private Sub CommandButton4_Click()
      Dim ws As Worksheet
      Dim lRow As Long, lCol As Long
      lRow = CommandButton4.TopLeftCell.Row
      lCol = CommandButton4.TopLeftCell.Column
      Set ws = Me
      Call BlattSortieren(ws, lRow, lCol)
    AUFRAEUMEN:
      Set ws = Nothing
    End Sub
    In diesem Beispiel ist es CommandButton4. Für die anderen Command-Button ist ebenso zu verfahren. Dabei sind die Zeilen
    Code:
      lRow = CommandButton4.TopLeftCell.Row
      lCol = CommandButton4.TopLeftCell.Column
    
    entsprechend dem CommandButton anzupassen, also z.B. für CommandButton1
    Code:
      lRow = CommandButton1.TopLeftCell.Row
      lCol = CommandButton1.TopLeftCell.Column
    
    b7) Knöpfe für->Werkzeugleiste' und->Editiermodus' auf der Visual-Basic-Symbolleiste ausschalten.

    Jetzt sollte schon sortiert werden, wenn man eine Button drückt.

    Den letzte Sortiermodus (aufsteigend oder absteigend ) merkt sich das Makro und bei wiederholter Betätigung des Buttons wird dann entgegengesetzt sortiert.

    @wak66: Entspricht das so deinen Wünschen ?

    Gruß Matjes :)
     
Die Seite wird geladen...

Excel - Spalten formatieren - Ähnliche Themen

Forum Datum
Kann Excel Adressen automatisch erkennen und in die dafür vorgesehenen Spalten einfügen? Software: Empfehlungen, Gesuche & Problemlösungen 1. Feb. 2016
Automatisches ausdrucken bestimmter Spalten in Excel Software: Empfehlungen, Gesuche & Problemlösungen 18. Juli 2014
Excel 2010 - Spalten automatisch zählen Windows XP Forum 22. Apr. 2013
2 Spalten in Excel 2003 fixieren Microsoft Office Suite 28. Mai 2012
Excel 2007. Nichtbenötigte Zeilen und Spalten entfernen. Microsoft Office Suite 30. März 2012