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

Textdatei Import

Textdatei Import
15.12.2022 11:48:29
Antonio
Hallo Antonio hier der mal Hilfe braucht,
ich importiere eine Textdatei in Excel, sowei auch gut, hier der code:

Option Explicit
Sub txtDatei_Einlesen()
Dim rngBereich As Range 'Bereich löschen
Set rngBereich = Range("A1:D800")
rngBereich.ClearContents
Dim ff As Long
Dim sFile As String
Dim sLine As String
Dim arr() As String
Dim row As Long
Dim col As Long
Dim activCell As Range
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
ff = FreeFile
sFile = Application.GetOpenFilename("Textdateien (*.txt), *.txt", 0, "Wählen der Datei für Import")
If sFile = "" Then
MsgBox "Der Dateiimport ist fehlgeschlagen!"
Else
'datei oeffnen
Open sFile For Input As #ff
'erste zelle markieren
Set activCell = Worksheets("Neuer_Song").Range("A1")
Call activCell.Activate
While (Not EOF(ff))
Line Input #ff, sLine 'zeile einlesen
arr = Split(sLine, vbTab) 'an tabs aufspalten
For col = LBound(arr) To UBound(arr)
'relativ zur aktiven zelle den wert setzen
activCell.Offset(row, col).Value = arr(col)
Next 'i
row = row + 1
Wend
'schliessen
Close ff
'MsgBox "Die Daten wurden erfolgreich importiert!"
End If
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
Die Textdatei aus Excel wird als z.B.: test.txt gespeichert. Wie sie sehen können,
überall wo ein Hochkomma ist, sind in wirklichkeit zwei Hochkomma, siehe Mappe:
https://www.herber.de/bbs/user/156745.xlsx
Wenn ich den Bereich "A1:D800" manuell lösche, dann die Textdatei öffne, alles markieren, kopieren und einfügen,
klappt das die zwei Hochkommer auch da sind.
Wenn ich den Bereich mittels Code lösche und die Textfile einfüge, frhlt mir eine der Hochkomma, ein Bild zum verdeutlichen:
https://www.herber.de/bbs/user/156746.jpg
Was kann ich im Code ändern oder dazu schreiben so das beide Hochkomme beim einlesen der Textdatei mit gelesen werden?
Vielen Dank im Voraus
LG Antonio

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textdatei Import
15.12.2022 12:14:31
Rudi
Hallo,
vermutlich ist in der exportierten .txt nur ein ' vorhanden. Das erste ' wird von Excel als Text-Kennzeichen behandelt und nur das zweite als Bestandteil des Textes. Deshalb sieht man auch nur in der Bearbeitungsleiste zwei '.
Mach einfach ein zweites ' davor, falls ein ' vorkommt.

'relativ zur aktiven zelle den wert setzen
activCell.Offset(row, col).Value = IIf(Left(arr(col), 1) = "'", "'" & arr(col), arr(col))
Gruß
Rudi
AW: Textdatei Import
15.12.2022 13:12:37
Antonio
Hallo Rudi,
das wars
Vielen Dank
LG Antonio
AW: Textdatei Import
19.12.2022 14:11:06
Antonio
Sorry fürs erneut öffnen des Threads.
Habe was vergessen:
Wie kann ich die zweite Zeile einer Textdatei in ein UserForm LABEL auslesen?
Hier eine Bsp. Textdatei:
https://www.herber.de/bbs/user/156830.txt
Bitte, wenn es geht keine Funktion.
Vielen Dank im Voraus
LG Antonio
Anzeige
AW: Textdatei Import
19.12.2022 14:20:10
Antonio
Kästchen vergessen
AW: Textdatei Import
19.12.2022 14:29:22
Rudi
Hallo,
indem du beim Einlesen einen Zähler mitlaufen lässt
z.B.

While (Not EOF(ff))
iLine = iLine + 1
Line Input #ff, sLine 'zeile einlesen
If iLine = 2 Then
Userform1.Label1.Caption = sLine
End If
Gruß
Rudi
AW: Textdatei Import
19.12.2022 14:48:18
Antonio
Hallo Rudi,
danke für deine Rückmeldung,
aber sobald ich am Code Ende "Wend" schreibe und die Form aufrufe. Stürzt Excel ab.
was hast du vor? owT
19.12.2022 14:56:57
Rudi
AW: was hast du vor? owT
19.12.2022 15:08:35
Antonio
....Wie geschrieben, die zweite Zeile der Textdatei im Label auslesen.
Ich kann ein Abschnitt vom Code hier posten, die gesamt Mappe geht nicht weil zu groß.

Private Sub LB_SongListe_Click()
' Einlesen eine Songliste aus einer Datei
Dim sDatei As String, sZeile As String, sLBs() As String, sArr() As String
Dim sParam As String, t As String, T2 As String
Dim sWerte As String, sWert1 As String, sWert2 As String, sWert3 As String
Dim iDrumZl As Integer, iDrumItem As Integer, i As Integer
Dim iff As Integer
bNoAction = True
cbDual = False
sDatei = GetPfad() & LB_SongListe.Value & ".txt"
If Dir$(sDatei) = "" Then Exit Sub
iDrumItem = 1
' In welche Listbox sollen die Daten eingepflegt werden?
If InStr(sDatei, "_Drum") > 0 Then
Call Textboxen_Löschen: GoTo Weiter
ElseIf InStr(sDatei, "_Begl") > 0 Then
t = "Begleitung"
ElseIf InStr(sDatei, "_Bass") > 0 Then
t = "Bass"
ElseIf InStr(sDatei, "_Melo") > 0 Then
t = "Melodie"
Else
t = "Begleitung"
LB_Melodie.Clear
LB_Begleitung.Clear
LB_Bass.Clear
End If
Me.Controls("LB_" & t).Clear                          ' Daten aus der Listbox löschen
sLBs = Split(t & vbTab & vbTab & vbTab & vbTab, vbTab)
Weiter:
iff = FreeFile
Open sDatei For Input As #iff
While Not EOF(iff)
Line Input #iff, sZeile
sZeile = Replace(sZeile, vbTab & ":", ":")
If Left$(sZeile & " ", 1)  "'" Then
If sZeile = "" Then sZeile = "."
sZeile = Trim$(Split(sZeile, "'")(0))
sParam = Trim$(Split(sZeile & ":", ":")(0))
sWerte = Trim$(Split(sZeile & ":", ":")(1))    ' Die Parameterwerte aus der Zeile extrahieren
sWert1 = Split(sWerte & "|", "|")(0)
sWert2 = Split(sWerte & "|", "|")(1)
Select Case UCase$(sParam)
Case "ANZEIGE":               giAuftakt = Val(sWert1): giBeglBreite = Val(sWert2)
cbDual = True
Case "SETTINGS":              Call SetzeParameter(sWerte)
Case "INSTRUMENT MELODIE":    Me.CB_Melodie.Value = sWert1
If sWert2  "" Then Me.SP_Volume_Melodie.Value = sWert2
Case "INSTRUMENT BEGLEITUNG": Me.CB_Begleitung = sWert1
If sWert2  "" Then Me.SP_Volume_Begleitung.Value = sWert2
Case "INSTRUMENT BASS":       Me.CB_Bass = sWert1
If sWert2  "" Then Me.SP_Volume_Bass.Value = sWert2
Case "ART":                   sLBs = Split(sWerte & vbTab & vbTab & vbTab, vbTab)
Case "DRUMS CLEAR":           Call Textboxen_Löschen
Case Else
If sParam Like "## [A-Z]*" Then
' Drum-Noten einlesen
iDrumZl = iDrumZl + 1
If iDrumZl 

Anzeige
an volti
20.12.2022 10:04:19
Antonio
Sorry KH
kannst mir dabei helfen?
LG Antonio
AW: an volti
20.12.2022 10:34:02
Antonio
Erledigt
LG Antonio

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige