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

Sortierung / Filter

Sortierung / Filter
23.04.2018 15:49:20
Tommi
Hallo liebe Experten,
ich habe 2 Probleme, vor denen ich jeden Monat erneut stehe und die ich gern über einen Automatismus lösen würde. Ich bekomme jeden Monat eine Projektliste mit ca. 200 Zeilen und 15 Spalten als Excel-Export aus einer anderen Software.
1. Problem:
In der Spalte A stehen Projektnummern und Projektnamen in der gleichen Zelle. Nummern und Namen trenne ich über Daten und Text in Spalten. Ist halt ein manueller Aufwand.
2. Problem:
Die 200 Projektnummern müssen nach den letzten beiden Entziffern sortiert und in Gruppen dargestellt werden. Es gibt 4 Gruppen (Endziffern: 01 und 03, 05, 07, 22 und 30). Das löse ich momentan mit einer Hilfszeile und der Formal =rechts(A?,2) zum Auslesen der letzten beiden Ziffern. Anschließend wird sortiert, die Hilfsspalte gelöscht und die Zeilen dann manuell zugordnet.
Zusätzliche Schwierigkeit ist, dass die Anzahl der Projekte nicht immer gleich ist. Es kommt mal ein neues dazu oder eins fällt eben weg.
Hat jemand eine Idee, wie ich mir diese Arbeit etwas erleichtern könnte ?
Vielen Dank
Tommi

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Beispielmappe bitte
23.04.2018 19:03:39
Peter(silie)
Hallo,
wenn es auch mit VBA sein darf, kann ich helfen.
Wie im Betreff schon: Bitte eine Beispielmappe hochladen.
Hier ein Beispiel
23.04.2018 20:26:07
Peter(silie)
Hallo,
hier eine Mappe wie es aussehen könnte: https://www.herber.de/bbs/user/121219.xlsm
hier nur der Code:
ProjectSorting Klassenmodul:

Option Explicit
Private pdn As String
Private shD As Worksheet
Public Property Let ProjectDefinitionNumber(ByVal value_ As String)
pdn = value_
End Property
Public Property Set ProjectSheet(ByRef this_ As Object)
Set shD = this_
End Property
Public Function GetProjectNumberIndexArray() As Variant
Dim tmp     As Variant
Dim data()  As Variant
Dim vItem   As Variant
Dim idx     As Long
Dim lr      As Long
If shD Is Nothing Then Exit Function
If Len(pdn)  2 Then Exit Function
With shD
lr = .Cells(.Rows.Count, 1).End(xlUp).Row
tmp = .Range(.Cells(1, 1), .Cells(lr, 1)).Value
For lr = LBound(tmp) To UBound(tmp)
vItem = tmp(lr, 1)
If Right(vItem, 2) = pdn Then
ReDim Preserve data(idx)
data(idx) = lr
idx = idx + 1
End If
Next lr
End With
GetProjectNumberIndexArray = data
End Function
Public Function GetProjectNumberDataArray(ByRef Indizes() As Variant) As Variant
Dim tmp     As Variant
Dim data()  As Variant
Dim idx     As Long
If shD Is Nothing Then Exit Function
ReDim data(LBound(Indizes) To UBound(Indizes))
With shD
For idx = LBound(Indizes) To UBound(Indizes)
tmp = .Range(.Cells(Indizes(idx), 1), .Cells(Indizes(idx), 15)).Value
tmp = Application.Transpose(Application.Transpose(tmp))
data(idx) = Join(tmp, ";")
Next idx
End With
GetProjectNumberDataArray = data
End Function
Code von Tabelle1:

Sub Test()
Dim ps      As New ProjectSorting
Dim tmp()   As Variant
Set ps.ProjectSheet = ThisWorkbook.Sheets(1)
ps.ProjectDefinitionNumber = "01"
tmp = ps.GetProjectNumberIndexArray
tmp = ps.GetProjectNumberDataArray(tmp)
With ThisWorkbook.Sheets(2)
.Range("A1").Resize(UBound(tmp) + 1).Value = Application.Transpose(tmp)
End With
End Sub

Anzeige
AW: Hier ein Beispiel
25.04.2018 10:13:28
Tommi
Hallo Peter(silie),
Danke Dir schon mal recht herzlich. Hier kommen zwei Beispieldateien.
Datei 1 - der Ausgangszustand
Datei 2 - so müsste Sie am Ende aussehen (Sortierung nach den letzten beiden Ziffern der Projektnummern und in Gruppen zusammengestellt
Gruppe 1: 00,01,03
Gruppe 2: 04,05
Gruppe 3: 07
Gruppe 4: 22
Gruppe 5: 27
Gruppe 6: 30
AW: Hier ein Beispiel
25.04.2018 11:17:23
Peter(silie)
Hallo,
hier deine Mappe: https://www.herber.de/bbs/user/121266.xlsm
Drücke Alt+F8 und führe das Makro PerformProjectSorting aus.
Danach hast du ein neues Tabellenblatt mit den Daten sortiert.
AW: Hier ein Beispiel
26.04.2018 13:39:22
Tommi
Danke Dir !!!!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige