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

Sortieren

Sortieren
Torsten
Hi habe folgendes Problem
Eine Tabelle:
A 5
F 6
C 3
J 4
Diese Tabelle soll nun automatisch von Excel in die richtige Reihenfolge gebracht werden,
und zwar soll sie nach den Zahlen sortiert werden.
Ergebnis soll also so aussehen:
F 6
A 5
J 4
C 3
Geht das irgendwie?
Gruß Torsten

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

Betreff
Benutzer
Anzeige
AW: Sortieren
25.05.2010 09:28:50
Pixeldieb
Bereich markieren, dann im Menü auf Daten-Sortieren gehen. Dort dann die Spalte mit den Zahlen auswählen und absteigend anklicken. Dann OK. Fertig
Gruß Holger
AW: Sortieren
25.05.2010 09:47:36
Torsten
Nein falsch verstanden
Das ganze soll AUTOMATISCH erfolgen.
die Zahlen hinter den Buchstaben verändern sich (das sind Summen die durch Addition an anderer Stelle entstehen)
Und die Funktion soll die Tabelle immer aktuell halten mit dem höchsten Wert an Stelle 1 usw.
Siehe oben.
mit VBA (Regexp)
25.05.2010 09:49:31
Tino
Hallo,
kannst mal diesen Code testen, Voraussetzung ist dass die letze Spalte frei ist.
Sub Daten_Sort()
Dim meAr, tmpAr
Dim Regex As Object
Dim A As Long
Dim ErsteZelleMitDaten As Range
With Tabelle2 'Tabelle anpassen 
    
    'Bereich anpassen, hier ab A2 ohne Überschrift 
    Set ErsteZelleMitDaten = .Range("A2")
    
    meAr = .Range(ErsteZelleMitDaten, _
           .Cells(.Rows.Count, ErsteZelleMitDaten.Column).End(xlUp)).Resize(, 2)
    
    Redim Preserve meAr(1 To Ubound(meAr), 1 To 1)
    Redim tmpAr(1 To Ubound(meAr), 1 To 1)
    
    Set Regex = CreateObject("Vbscript.Regexp")
    
    With Regex
      .MultiLine = True
      .Pattern = "\D"
      .Global = True
          
        For A = 1 To Ubound(meAr)
            tmpAr(A, 1) = .Replace(meAr(A, 1), "")
            If IsNumeric(tmpAr(A, 1)) Then tmpAr(A, 1) = tmpAr(A, 1) * 1
        Next A
    
    End With
    
    .Cells(ErsteZelleMitDaten.Row, Columns.Count).Resize(Ubound(tmpAr)) = tmpAr
    .UsedRange.Sort Key1:=.Cells(ErsteZelleMitDaten.Row, .Columns.Count), Order1:=xlAscending, Header:=xlYes
    .Columns(.Columns.Count).Delete
End With

End Sub
Gruß Tino
Anzeige
AW: mit VBA (Regexp)
25.05.2010 12:51:46
Torsten
Damit komm ich nicht wirklich klar aber dennoch danke erstmal. ;-)
Ich lade einfach mal die Datei hoch.
Ich möchte das die Tabelle im Bereich BB7:BI10 erst nach BH und bei gleichheit zusätzlich nach BI sortiert wird
https://www.herber.de/bbs/user/69720.xls
AW: mit VBA (Regexp)
25.05.2010 13:14:51
Torsten
Damit komm ich nicht wirklich klar aber dennoch danke erstmal. ;-)
Ich lade einfach mal die Datei hoch.
Ich möchte das die Tabelle im Bereich BB7:BI10 erst nach BH und bei gleichheit zusätzlich nach BI sortiert wird
https://www.herber.de/bbs/user/69720.xls
Anzeige
AW: mit VBA (Regexp)
25.05.2010 23:59:32
Daniel
Hi
das sortieren ist doch einfach.
das Problem sind deine Zellbezüge auf die Spielergebnistabellen, die beim Sortieren mitwandern.
da hilft nur eins, du musst die Zellbezüge auf die Spielergebnistabellen so abändern, daß die Bezüge beim Sortieren fix bleiben.
das geht beispielsweise mit der INDIREKT-Funktion:
statt "=A1+C5" schreibst du "=Indirekt("A1")+Indirekt("C5")" allerdings solltest du das erst machen, wenn dein Tabellenaufbau wirklich fix ist, denn über diese Methode hast du auch die automatische Formelkorrektur beim Einfügen und Löschen von Zellen deaktiviert.
Gruß, Daniel
Anzeige
hier mein Vorschlag dazu.
26.05.2010 09:09:06
Tino
Hallo,
ich war oben davon ausgegangen das Buchstaben und Zahlen in einer Zelle zusammenstehen,
dies ist aber was ganz anderes.
Hier mein Vorschlag dazu.
Ich haben den Gruppen einen Namen verpasst GruppeA bis GruppeH
Im Bereich BC bis BG alle Zellebezüge auf absolut umstellen.
Dies habe ich zum testen nur für die Gruppe A und B gemacht!
Die Sortierung wird mit VBA erledigt und zwar wenn Du in Spalte D:F etwas eingibst.
Achtung bei den Gruppen C bis H vor der Eingabe erst die Zellebezüge auf absolut stelle!
https://www.herber.de/bbs/user/69736.xls
Gruß Tino
Anzeige
AW: hier mein Vorschlag dazu.
26.05.2010 09:44:59
Torsten
Super das funzt Klasse Danke
Korrektur...
26.05.2010 12:41:56
Tino
Hallo,
ersetze den Code in der Tabelle1 durch diesen.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range, SortBereich As Range

Set Bereich = Intersect(Range("D6:D81,F6:F81"), Target)
If Bereich Is Nothing Then Exit Sub
    
With Application
 .EnableEvents = False
    Set Bereich = Bereich.Offset(0, 50)
    If Not Intersect(Bereich, Range("GruppeA")) Is Nothing Then     'Gruppe A 
        Call SortiereBereich(Range("GruppeA"))
    ElseIf Not Intersect(Bereich, Range("GruppeB")) Is Nothing Then 'Gruppe B 
        Call SortiereBereich(Range("GruppeB"))
    ElseIf Not Intersect(Bereich, Range("GruppeC")) Is Nothing Then 'Gruppe C 
        Call SortiereBereich(Range("GruppeC"))
    ElseIf Not Intersect(Bereich, Range("GruppeD")) Is Nothing Then 'Gruppe D 
        Call SortiereBereich(Range("GruppeD"))
    ElseIf Not Intersect(Bereich, Range("GruppeE")) Is Nothing Then 'Gruppe E 
        Call SortiereBereich(Range("GruppeE"))
    ElseIf Not Intersect(Bereich, Range("GruppeF")) Is Nothing Then 'Gruppe F 
        Call SortiereBereich(Range("GruppeF"))
    ElseIf Not Intersect(Bereich, Range("GruppeG")) Is Nothing Then 'Gruppe G 
        Call SortiereBereich(Range("GruppeG"))
    ElseIf Not Intersect(Bereich, Range("GruppeH")) Is Nothing Then 'Gruppe H 
        Call SortiereBereich(Range("GruppeH"))
    End If
 
 .EnableEvents = True
End With
End Sub
Gruß Tino
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige