Ich möchte eine Textdatei in Excel zeilenweise auslesen
lassen. Der Inhalt der Zeile soll in einer MsgBox angezeigt
werden und der Nutzer soll die Möglichkeit haben, den ganzen
oder einen Teil dieser Zeile zu markieren und diesen dann per
Button einer bestimmten Kategorie zuordnen lassen. Excel soll
dann den markierten Teil in die dafür vorgesehene Spalte der
Tabelle schreiben.
Die Textdatei hat z.B. folgenden Aufbau:
Das ist der Titel
Erschienen in Zeitung xxx, Seite a-b, Erscheinungsjahr
Vorname des Autors, dessen Nachname, diverse Co-Autoren
kurze Zusammenfassung des Inhalts
.
Nächster Eintrag in ähnlicher Form
Wie könnte ich das am besten mit VBA realisieren?
Vielen Dank für die gemachte Mühe.
Hm, also in abgewandelter Form habe ich momentan eine ähnliche Aufgabe zu erledigen. Das einfachste ist wohl, alle Zeilen durch zu parsen und entsprechend die Daten zu verarbeiten. Bei mir sieht das z.B. grob so aus:
iLastRow = LastRow()
sLastCol = LastColumn()
For iScope = 1 To iLastRow
sOut = Parse_Zeilen(Range(„A“ & CStr(iScope) & „:“ & sLastCol & CStr(iScope)))
If sOut „“ Then
’ tue irgendwas
End If
Next iScope
Function LastRow() As Integer
LastRow = Range(„A“ & CStr(Rows.Count)).End(xlUp).Row 'Letzte Zeile in Spalte A bestimmen
End Function
Function LastColumn() As String
Dim iHelp As Integer
iHelp = Range(„IV1“).End(xlToLeft).Column 'Letzte Spalte
LastColumn = spalten_buchstabe(iHelp)
End Function
Function spalten_buchstabe(spaltennummer) As String
’
’ Wandelt Spaltenzahl in Buchstabe(n) A bis IV um
’
If spaltennummer „“ Then
'String der Zelle Verarbeiten
End If
Next z
Parse_Zeilen = Rueckgabestring
End Function
Dass ich einen Bereich nehme, hat damit zu tun, dass ich etwas flexibler sein möchte und nicht nur Daten in der Spalte A verarbeiten können möchte, sondern je nach Import-Spaltentrennung auch bis Spalte IV berücksichtige.
Die String-Verarbeitung musst Du dann selbst noch auskaspern, ebenso die Kategoriezuordnung, dafür fehlt mir momentan die Zeit und habe selbst zu tun.
Notfalls kurze e-mail an mich, s.o. oder [email protected] (tagsüber wochentags)
Ich hoffe, ich konnte wenigstens ein bisschen helfen…
Gruss,
Harald