ich benötige etwas Hilfe bei meiner Aufgabenstellung. Und zwar importiere ich Daten über ein UserForm aus CSV Dateien. Diese werden im Tabellenblatt 1 gespeichert, in Spalte H nach dem Datum absteigend aufgelistet und anschließend alle doppelten Einträge in Abhängigkeit von Spalte 1 und 4 gelöscht.
Die übrig gebliebenen Datensätze (nur die Werte) möchte ich jetzt dann automatisch in das Tabllenblatt 2 in die letzte leere Zeile der Spalte D kopieren.
Danach sollten alle Zeilen in Tabellenblatt 1 ab Zeile 6 gelöscht werden und die Filter zurück gesetzt werden.
Die letzten beiden Sachen habe ich wie folgt gelöst.
Selection.AutoFilter
Rows("6:50000").Select
Selection.Delete Shift:=xlUp
Nicht sehr elegant aber ich weiß gerade nicht wie ich es sonst machen soll. Bei den beiden anderen Sachen brauche ich wohl möglich Hilfe.Das wäre der ganze Code der im UserForm steht:
Option Explicit
'Modulweite Variablen deklarieren.
Dim loLetzte As Long
Private Sub Datei_einlesen_Click()
Dim varItem As Variant
varItem = File_Selection(False)
If IsArray(varItem) Then
If varItem(0) = "" Then Exit Sub
Me.TextBox1.Text = varItem(0)
End If
End Sub
Private Sub Speichern_Click()
With Sheets("Tabellenblatt1")
loLetzte = .Cells(Rows.Count, 4).End(xlUp).Row + 1
If loLetzte 0 Then
PosAt2 = InStr(PosAt1 + 1, sText, "@")
End If
If PosAt2 > 0 Then
.Cells(zeile, 1).Value = "" & Mid(sText, PosAt2 + 1)
End If
Next
'nicht benötigte Spalten löschen von rechts nach links _
benötigt werden die Spalten 1, 3, 4, 6, 8, 9, 10, 12 und 13
lastCol = .UsedRange.Column + .UsedRange.Columns.Count - 1
If lastCol > 13 Then
.Range(.Columns(14), .Columns(lastCol)).Delete
End If
.Columns(11).Delete
.Columns(7).Delete
.Columns(5).Delete
.Columns(2).Delete
'Die Spalten sollten dann in meinem Tabellenblatt in der folgenden Reihenfolge _
aufgeführt sein: 1, 3, 6, 4, 13, 8, 9, 10, 12
'Spalte 13 verschieben
.Columns(9).Cut
.Columns(5).Insert
.Columns(7).Cut
.Columns(6).Insert
'Spalte 6 verschieben
.Columns(4).Cut
.Columns(3).Insert
End With
End Function