Guten Tag,
meine Aufgabe ist es eine csv-Datei einzulesen und in einem Worksheet wiederzugeben, jedoch als benannte Tabelle. Im besagten Worksheet steht bereits eine Tabelle mit besagten Daten die ich zuvor lösche. Das löschen und importieren der csv-Datei als Tabelle funktioniert soweit, dass ich jedoch bei der neuen Tabelle zu viele leere Zeilen habe, dich ich ebenfalls mit meiner Prozedur löschen möchte.
Fehlermeldung ist mir auch noch etwas ein Rätsel bzw. ich verstehe die schon, jedoch kann ich es nicht beheben. Bin leider noch etwas ungeübt mit VBA :)
Zur Veranschaulichung:
Im ersten Bild sehen Sie meine Ausgangssituation: Also die bereits vorhandene Tabelle
Das zweite Bild soll mein Problem darstellen.
Hier der Code:
Schon mal vielen Dank im voraus :)))
meine Aufgabe ist es eine csv-Datei einzulesen und in einem Worksheet wiederzugeben, jedoch als benannte Tabelle. Im besagten Worksheet steht bereits eine Tabelle mit besagten Daten die ich zuvor lösche. Das löschen und importieren der csv-Datei als Tabelle funktioniert soweit, dass ich jedoch bei der neuen Tabelle zu viele leere Zeilen habe, dich ich ebenfalls mit meiner Prozedur löschen möchte.
Fehlermeldung ist mir auch noch etwas ein Rätsel bzw. ich verstehe die schon, jedoch kann ich es nicht beheben. Bin leider noch etwas ungeübt mit VBA :)
Zur Veranschaulichung:
Im ersten Bild sehen Sie meine Ausgangssituation: Also die bereits vorhandene Tabelle
Das zweite Bild soll mein Problem darstellen.
Hier der Code:
Code:
Public Sub AUTOM_IMPORT()
Dim MsgBoxButton As Integer
'Variablen für die Dateipfade
Dim dateipfadGruppennote As String
'Variablen für die For-Each-Schleife
Dim reihe As Integer
Dim spalte As Integer
Dim textzeile As String
'Variablen für importierte Daten
Dim gruppennotenDaten As Variant
Dim gruppennotenTabelle As ListObject
Dim gruppennotenWS As Worksheet
Set gruppennotenWS = ActiveWorkbook.Sheets("Gruppennote")
Set gruppennotenTabelle = ActiveWorkbook.Worksheets("Gruppennote").ListObjects("Gruppennoten")
Dim strTabelle As String
strTabelle = ActiveCell.CurrentRegion.Address
MsgBoxButton = MsgBox("Wollen Sie Daten importieren?", vbOKCancel, "Automatisierter Datenimport")
'In disem Code-Block wird die aktuelle Tabelle gelöscht, CSV-Datei eingelesen und Daten importiert und die neue Tabelle (mitgleicher Bennenung) erstellt.
If MsgBoxButton = vbOK Then
dateipfadGruppennote = Application.GetOpenFilename("Text Files (*.csv),*.csv")
If dateipfadGruppennote = "False" Or dateipfadGruppennote = "Falsch" Then
MsgBox ("Sie haben den Import abgebrochen")
Exit Sub
Else
MsgBox ("Ihre ausgewählten Dateien: " & vbNewLine & dateipfadGruppennote)
gruppennotenTabelle.Delete
Open dateipfadGruppennote For Input As #1
reihe = 1
While Not EOF(1)
Line Input #1, textzeile
spalte = 1
For Each wort In Split(textzeile, ";")
Cells(reihe, spalte).Value = wort
spalte = spalte + 1
Next wort
reihe = reihe + 1
Wend
Close
ActiveSheet.ListObjects.Add(xlSrcRange, Range(strTabelle), , xlYes).Name = "Gruppennoten"
End If
End If
gruppennotenTabelle.ListRows(Gruppennoten.ListRows).Delete 'Hier ist die Problemzeile
End Sub
Schon mal vielen Dank im voraus :)))