1.8k Aufrufe
Gefragt in Textverarbeitung von dave87 Einsteiger_in (11 Punkte)
Hallo,

ich bin neu hier und hoffe es kann mir jemand helfen.
Folgende Aufgabe bekomme ich nicht programmiert.

In zwei Textdateien stehen sortiert nach Namen, Vornamen, Matrikelnummer und Note zur Lehrveranstaltung "Mathematik" getrennt durch Komma oder Semikolon.

Ich soll nun ein VBA-Modul schrieben, das die beiden Dateien zeilenweise liest und in der richtigen Reihenfolge nach Namen und Vornamen (alphabetisch) sortiert und in eine neue Excel Datei schreibt.

lieben Gruß Dave

2 Antworten

0 Punkte
Beantwortet von dave87 Einsteiger_in (11 Punkte)
Zum Beispiel sollen zwei von solchen Textdateien in Exel geöffnet und nach Nachnamen und Vornamen sortiert werden.

Baumann; Anna; 70503309; 1,0
Baumann; Friedrich; 75003309; 3,2
Baumann; Johanna; 70007909; 1,3
Heinrich; Carl; 70003627; 2,4
Ludwig; Carl; 72353309; 2,1
Böck; Carl; 72748309; 2,8
Briese; Emilie; 70036498; 1,1
Fenner; Auguste; 89735309; 2,1
Gehrke; Carlos; 70394709; 3,3
Fenner; Leon; 97633309; 1,5
0 Punkte
Beantwortet von dave87 Einsteiger_in (11 Punkte)
Ich habe mich soweit durchgeschlagen, und das Makro funktioniert jetzt so weit, jedoch wenn ich die Text dateien mit weiteren Namen fülle funktioniert es nicht mehr.
Vielleicht findet ihr den fehler oder wisst was ich verändern muss:


Sub Makro2()
'
' Makro2 Makro
'
' Tastenkombination: Strg+m
'
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\David\Desktop\Namen1.txt", Destination:=Range("$A$1"))
.Name = "Namen1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 932
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(2, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Range("A11").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\David\Desktop\Namen2.txt", Destination:=Range("$A$11"))
.Name = "Namen2"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(2, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
ActiveWindow.SmallScroll Down:=-18
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Add Key:=Range("A1:A21" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Add Key:=Range("B1:B21" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Tabelle1").Sort
.SetRange Range("A121")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveWindow.SmallScroll Down:=-15
End Sub
...