Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1452to1456
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

Aktenzeichen sortieren

Aktenzeichen sortieren
16.10.2015 13:54:08
Tobias
Liebe Excel-Spezialisten
Ich habe Akten zu verwalten, deren Aktenzeichen nach folgendem Format gebildet werden müssen: 34/03, 65/99, 25/02 usw., wobei die ersten beiden Ziffern die laufende Nummer eines Jahrgangs darstellen, und die Ziffern nach dem Schrägstrich den Jahrgang. Diese Zeichenfolgen befinden sich in Spalte A. Ich möchte nun die Akten so sortieren, dass die Jüngste am Ende der Liste steht, also
65/99
25/02
34/03
Es muss aber unbedingt eine Sortierung erfolgen, damit ich überblicken kann, welche Akte ich schon erfaßt habe. Im Archiv habe ich nichts gefunden.
Ich bedanke mich!
Viele Grüße Tobias

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aktenzeichen sortieren
16.10.2015 14:16:24
MAG
Hallo,
Hilfsspalte und runterziehen, dann mit "Bordmitteln" sortieren (gilt nur ab 1916 ! ;-)).

=WENN(UND(RECHTS(A1;2)*1>=0;RECHTS(A1;2)*1
Gruß, MAG

AW: alternativ ohne WENN() ...
16.10.2015 14:42:40
...
Hallo Tobias,
... reicht folgende Formel in der Hilfsspalte, nach dessen Werten Du dann anschließend Deinen gesamten Datenbestand entsprechend sortieren kannst:
=1900+RECHTS(A1;2)+(RECHTS(A1;2)*1
Wenn Du gern das Trennzeichen auch da sehen willst, dann dieses eben so:
=1900+RECHTS(A1;2)+(RECHTS(A1;2)*1
noch einbinden.
Gruß Werner
.. , - ...

Anzeige
AW: Aktenzeichen sortieren
16.10.2015 15:19:56
Peter
Hallo Tobias,
hier eine VBA Lösung mit dem Excel-Sort und zwei temporären Hilfsspalten
Gruß Peter
Option Explicit
'    Ich habe Akten zu verwalten, deren Aktenzeichen nach folgendem Format gebildet werden mü _
ssen:
'    34/03, 65/99, 25/02 usw., wobei die ersten beiden Ziffern die laufende Nummer eines  _
Jahrgangs
'    darstellen, und die Ziffern nach dem Schrägstrich den Jahrgang.
'    Diese Zeichenfolgen befinden sich in Spalte A.
'    Ich möchte nun die Akten so sortieren, dass die Jüngste am Ende der Liste steht, also
'    65/99
'    25/02
'    34/03
'    Es muss aber unbedingt eine Sortierung erfolgen, damit ich überblicken kann, welche Akte  _
ich schon erfaßt habe.
'    sortiert wird das Tabellenblatt "Tabelle1"
'    sortiert wird ab Zeile 1 - also OHNE ÜBERSCHRIFT
'    sortiert wird Spalte A - Z
Public Sub Aktenzeichen_sortieren()
Dim lLetzte  As Long    ' die letzte belegte Zeile in Spalte A
Dim lZeile   As Long    ' For/Next Schleifen-index - hier die Zeile
Dim vTemp    As Variant ' ein temporärer Bereich zum trennen am "/"
Application.ScreenUpdating = False  ' kein Bildschirm-Update zulassen
With ThisWorkbook.Worksheets("Tabelle1") ' den Tabellen-Blattnamen ggf. ANPASSEN !!!
lLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row ' die letzte belegte Zeile gemäß Spalte 1 = _
A
.Columns("A:A").Insert Shift:=xlToRight ' 1. Hilfsspalte einfügen
.Columns("A:A").Insert Shift:=xlToRight ' 2. Hilfsspalte einfügen
For lZeile = 1 To lLetzte
If InStr(.Range("C" & lZeile).Value, "/") > 0 Then ' gibt es einen "/" ?
vTemp = Split(.Range("C" & lZeile).Value, "/")  ' am "/" aufteilen
.Range("A" & lZeile).Value = vTemp(1)           ' das Jahr in die 1. Hilfsspalte
.Range("B" & lZeile).Value = vTemp(0)           ' die lfd. Nr in die 2. Hilfsspalte
Else
.Range("A" & lZeile).Value = .Range("C" & lZeile).Value ' Werte ohne den "/"
End If
Next lZeile
'        die beiden Hilfsspalten sortieren - absteigend das Jahr, aufsteigend die lfd. Nummer
.Range("A1:AB" & lLetzte).Sort _
Key1:=Range("A1"), _
Order1:=xlDescending, _
Key2:=Range("B1"), _
Order2:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
.Columns("A:B").Delete Shift:=xlToLeft ' die Hilfsspalten wieder löschen
End With
Application.ScreenUpdating = True  ' den Bildschirm-Update wieder zulassen
End Sub

In ein allgemeines Modul kopieren und über Alt + F8 starten

Anzeige
AW: meine VBA Lösung bitte ignorieren
17.10.2015 06:18:31
Peter
Hallo Tobias,
meine Excel-Lösung per normalem Sort, erfüllt die Anforderungen leider absolut nicht - sorry.
Gruß Peter

AW: die korrigierte Version
17.10.2015 11:48:04
Peter
Hallo Tobias,
hier noch meine korrigierte VBA Version.
Gruß Peter
Public Sub Aktenzeichen_sortieren()
Dim lLetzte  As Long    ' die letzte belegte Zeile in Spalte A
Dim lZeile   As Long    ' For/Next Schleifen-index - hier die Zeile
Dim vTemp    As Variant ' ein temporärer Bereich zum trennen am "/"
Dim sText    As String  ' die manipulierte Jahreszahl
Application.ScreenUpdating = False  ' kein Bildschirm-Update zulassen
With ThisWorkbook.Worksheets("Tabelle1") ' den Tabellen-Blattnamen ggf. ANPASSEN !!!
lLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row ' die letzte belegte Zeile gemäß Spalte 1 = _
A
.Columns("A:A").Insert Shift:=xlToRight ' 1. Hilfsspalte einfügen
.Columns("A:A").Insert Shift:=xlToRight ' 2. Hilfsspalte einfügen
For lZeile = 1 To lLetzte
If InStr(.Range("C" & lZeile).Value, "/") > 0 Then ' gibt es einen "/" ?
vTemp = Split(.Range("C" & lZeile).Value, "/")  ' am "/" aufteilen
If Val(vTemp(1)) > 50 Then
.Range("A" & lZeile).Value = 1900 + Val(vTemp(1))  ' das Jahr in die 1.  _
Hilfsspalte
Else
.Range("A" & lZeile).Value = 2000 + Val(vTemp(1))  ' das Jahr in die 1.  _
Hilfsspalte
End If
.Range("B" & lZeile).Value = vTemp(0)    ' die lfd. Nr in die 2. Hilfsspalte
Else
.Range("A" & lZeile).Value = .Range("C" & lZeile).Value ' Werte ohne den "/"
End If
Next lZeile
'        die beiden Hilfsspalten sortieren - absteigend das Jahr, aufsteigend die lfd. Nummer
.Range("A1:AB" & lLetzte).Sort _
Key1:=Range("A1"), _
Order1:=xlAscending, _
Key2:=Range("B1"), _
Order2:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
.Columns("A:B").Delete Shift:=xlToLeft ' die Hilfsspalten wieder löschen
End With
Application.ScreenUpdating = True  ' den Bildschirm-Update wieder zulassen
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige