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

TXT File Import

TXT File Import
07.01.2023 14:35:19
Max
Ich benötige Hilfe bei dem Import eines TXT Files.
Ich habe mein Macro mit dem ich TXT Files importiere, dies funktioniert soweit auch wunderbar, so lange ich eine Zelle auf dem 1. Tabellenblatt auswähle.
Sollte ich aber eine Zelle auf einem anderen Tabellenblatt auswählen, wird das TXT File trotzdem in das erste Tabellenblatt kopiert,
es wird zwar die richtige Zelle auf dem richtigen Blatt gewählt, aber der TXT Import erfolgt immer auf Blatt 1.
Hab schon alles Mögliche ausprobiert aber komme nicht auf die Lösung, was muss hier geändert werden?

Private Sub TXT_Import()
Dim wb As Excel.Workbook
Dim ws As Excel.Worksheet
Dim rng As Range, TextLine As String, FilePath As String
Dim rw As Long, col As Long
Dim i As Long, j As Long, ary() As String, a As Variant
Dim txtfilesToOpen As Variant, txtfile As Variant
Set wb = Excel.ActiveWorkbook
Set fso = CreateObject("Scripting.FileSystemObject")
txtfilesToOpen = Application.GetOpenFilename _
(FileFilter:="Text Files (*.txt), *.txt", _
MultiSelect:=True, Title:="Text Files to Open")
MsgBox txtfile, vbOKOnly, "Gewählte Datei"
Set rng = Application.InputBox(Prompt:="Zelle zum einfügen wählen", Type:=8)
rng.Parent.Parent.Activate
rng.Parent.Activate
rw = rng.Row
col = rng.Column
Close #1
i = rw
Open txtfile For Input As #1
Do While Not EOF(1)
Line Input #1, TextLine
ary = Split(TextLine, vbTab)
j = col
For Each a In ary
Cells(i, j).Value = a
j = j + 1
Next a
i = i + 1
Loop
Close 1
Next txtfile
End Sub

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: TXT File Import
07.01.2023 14:50:17
Eifeljoi5
Hallo
Um dir nicht ins Handwerk zu reden, meiner Meinung benötigst du kein VBA.
Hier reicht schon ein importieren mit Power Query.
AW: TXT File Import
07.01.2023 14:57:43
Max
Leider mit Power Query nicht praktikabel, das ganze ist Teil einer größeren Arbeitsmappe mit weiteren Abläufen.
AW: TXT File Import
07.01.2023 15:39:38
onur
WO genau steht der Code?
AW: TXT File Import
07.01.2023 16:06:27
Max
Was meinst du mit "Wo genau steht der Code"?
AW: TXT File Import
07.01.2023 16:26:38
onur
Wo genau? In einem Standardmodul? Im Modul des Blattes? Im Modul der Mappe?
AW: TXT File Import
07.01.2023 16:58:38
Max
Steht um Modul der Arbeitsmappe
AW: TXT File Import
07.01.2023 15:47:35
Luschi
Hallo Max,
Deine Meinung zeugt von Unwissen der Materie Power Query eingebettet in Vba-Abläufe:
- welche txt-Datei eingelesen werden soll, steuert man über einen Parameter
- den die PQ-Abfrage bekannt gegeben wird
- dieser wird per Vba oder Dialog in 1 Excel-Zelle geschrieben
- PQ-Abfrage muß natürlich 1x zu Fuß erstellt werden
- nach der Aktualisierung des Parameters wird die Abfrage nur noch per Vba aktualisiert
- und dann kann es im Vba-Fluß weitergehen
- was willst Du mehr?
Gruß von Luschi
aus klein-Paris
Anzeige
AW: TXT File Import
07.01.2023 16:14:31
Max
Hallo Luschi,
mehr Automatisierung möchte ich, das Workbook wird von mehreren genutzt und da es sich um unterschiedlichste TXT Files handelt ist PQ nicht praktikabel.
AW: TXT File Import
07.01.2023 16:16:03
volti
Hallo Max,
falls Du es doch mit VBA machen möchtest, hier eine Idee dazu...
Code:


Option Explicit Private Sub TXT_Import() Dim vDatei As Variant, sArr() As String, sArr2() As String Dim rng As Range Dim i As Long, j As Long, ary() As String, a As Variant ' Auswahl der Textdateien vDatei = Application.GetOpenFilename _ (FileFilter:="Textdateien (*.txt), *.txt", _ MultiSelect:=True, Title:="Textdatei(en auswählen") On Error GoTo NixZuTun For j = 1 To UBound(vDatei) Set rng = Application.InputBox("Bitte jetzt die Einfügezelle für die Datei " & vDatei(j) & " wählen", Type:=8) If Not rng Is Nothing Then i = FreeFile() Open vDatei(j) For Input As i sArr = Split(Input(LOF(i), i), vbCrLf) Close i For i = 0 To UBound(sArr) If sArr(i) <> "" Then sArr2 = Split(sArr(i), vbTab) rng.Offset(i, 0).Resize(1, UBound(sArr2) + 1).Value = sArr2 End If Next i End If Next j MsgBox "Daten wurden importiert!", vbExclamation, "Textdateien einlesen" NixZuTun: End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
ERLEDIGT
07.01.2023 17:02:57
Max
Danke volti funktioniert wunderbar :)
AW: ERLEDIGT
07.01.2023 20:15:36
Luschi
Hallo Max,

das Workbook wird von mehreren genutzt
da wirst Du etliche Probleme kriegen, denn wenn alle das selbe Workbook benutzen wollen (zur selben Zeit), mußt Du die Arbeitsmappe freigeben - und da klemmt es dann bei Vba; na das wirst Du schon feststellen - Excel ist nicht so wie Access.
Gruß von Luschi
aus klein-Paris

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige