Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Excel VBA: mehrere txt-Dateien importieren, Zeilenumbruch als Trennzeichen

Frage Microsoft Microsoft Office

Mitglied: jojojo

jojojo (Level 1) - Jetzt verbinden

09.06.2014, aktualisiert 16:13 Uhr, 8414 Aufrufe, 11 Kommentare

Hallo zusammen.

seit ein paar Tagen versuche ich vergeblich (weil ich praktisch keine Ahnung von Makros bzw. VBA habe) eine Lösung für folgendes Problem zu finden:
Der Inhalt verschiedener txt-Dokumente (verschiedene Dateinamen, keine logische Reihenfolge) muss in eine Excel-Tabelle importiert werden.
Die txts befinden sich alle in dem gleichen Ordner.

Eine txt-Datei sieht wie folgt aus (Bsp.-Datensatz A):
12345
789
Ja
...(noch mehr Zahlen oder kurzer Text)
-321
8472032
Text mit vielen Zeichen und noch mehr Zeichen; und noch mehr.
noch ein Textabschnitt mit blabla


Bis auf die Zeilenumbrüche sind keine Trennzeichen vorhanden.

Die Dateien sollen so importiert werden, dass je eine Zeile aus der txt Datei in einer anderen Spalte steht:
Bsp:

A | 12345 | 789 | Ja | ... | -321 | ... | Text mit vielen Zeichen und noch mehr Zeichen, und noch mehr. | ...
B | ...

Im Netzt habe ich das hier gefunden:

01.
Sub txtimport() 
02.
    x = Sheets(1).UsedRange.Rows.Count 
03.
    d = Dir("C:\Zielordner\*.txt") 
04.
     
05.
    Do While d <> "" 
06.
        Open "C:\Zielordner\" & d For Input As #1 
07.
            Do While Not EOF(1) 
08.
                Line Input #1, temp 
09.
                Sheets(1).Cells(x, 1) = Replace(temp, vbTab, ";") 
10.
                x = x + 1 
11.
            Loop 
12.
        Close #1 
13.
         
14.
        For j = 1 To x 
15.
            Text = Split(Cells(j, 1), ";") 
16.
            For i = 0 To UBound(Text) 
17.
                Cells(j, i + 1) = Text(i) 
18.
            Next 
19.
        Next 
20.
         
21.
        d = Dir 
22.
    Loop 
23.
End Sub
Ein Import erfolgt, allerdings werden einfach alle Zeilen der txts untereinander abgedruckt, was mir nicht weiterhilft.
Am umformulieren, sodass die Daten vernünftig abgedruckt werden (siehe Tabelle oben), bin ich bisher gescheidert...

Wenn mir jemand helfen könnte, wäre ich sehr sehr dankbar.

VG
Mitglied: bastla
LÖSUNG 09.06.2014, aktualisiert um 16:13 Uhr
Hallo jojojo und willkommen im Forum!

Soferne ich Deine Problemstellung richtig verstehe (ich würde sie umformulieren auf: Importiere den gesamten Inhalt jeder Textdatei in jeweils eine Zeile, wobei die Zeilen der Textdatei auf einzelne Spalten verteilt werden sollen.), könnte das (ungetestet) so gehen:
01.
Sub txtimport() 
02.
    x = Sheets(1).UsedRange.Rows.Count 
03.
    d = Dir("C:\Zielordner\*.txt") 
04.
    Set fso = CreateObject("Scripting.FileSystemObject") 
05.
    Do While d <> "" 
06.
        T = Split(fso.OpenTextFile("C:\Zielordner\" & d).ReadAll, vbNewline) 
07.
        Sheets(1).Cells(x, 1).Resize(1, UBound(T) + 1).Value = T 
08.
        x = x + 1 
09.
        d = Dir 
10.
    Loop 
11.
End Sub
Grüße
bastla

[Edit] Zeile 4 ergänzt [/Edit]
Bitte warten ..
Mitglied: jojojo
09.06.2014, aktualisiert um 15:57 Uhr
Hallo bastla,

erst einmal vielen Dank!
Ich bekomme einen Laufzeitfehler '424' bzw. Objekt erforderlich für Zeile 6 (T = Split...)

VG

EDIT: Ja. Genau so, wie du es oben formuliert hast, ist es vielleicht deutlicher.
Bitte warten ..
Mitglied: bastla
LÖSUNG 09.06.2014, aktualisiert um 16:13 Uhr
Hallo jojojo!

Der Fehler wundert micht nicht - ich habe ja auch die Zeile 4
Set fso = CreateObject("Scripting.FileSystemObject")
unterschlagen ...

Ich trage das auch oben nach.

Grüße
bastla
Bitte warten ..
Mitglied: jojojo
09.06.2014 um 16:13 Uhr
Super. Vielen Dank! Das funktioniert....
Bitte warten ..
Mitglied: radihk
16.12.2015 um 10:58 Uhr
Hallo zusammen!

genau das gleiche Problem habe ich auch! Allerdings wenn ich den Code einfüge spuckt er mir die Fehlermeldung "Pfad nicht gefunden aus".
Ich kann mit dieser Fehlermeldung leider nichts anfangen. Wäre super wenn einer von euch einen Rat hätte!!
Bitte warten ..
Mitglied: bastla
16.12.2015 um 14:42 Uhr
Hallo radihk und willkommen im Forum!
Wäre super wenn einer von euch einen Rat hätte!!
Das wird vermutlich dauern - schließlich müssen wir uns durch die Unmenge an Informationen, die Du geliefert hast, durcharbeiten ...

Grüße
bastla
Bitte warten ..
Mitglied: radihk
16.12.2015 um 15:25 Uhr
Sorry x)

Ich möchte eine .txt Datein in Excel importieren. Die .txt ist eine Speisekarte die wie folgt aussieht:
Pizza Salami 5,90€
Pizza mit Tomatensauce, etc.

Nun möchte ich diese so in excel importieren, dass folgendes dabei herauskommt:
Pizza Salami | Pizza mit Tomatensauce | 5,90€

Ich habe es bereits mit eiener =WENN-Formel probiert und das klappt soweit auch allerdings kopiert diese Methode lediglich die"Beschreibung der Pizza" und das bringt mich überhauptnicht weiter..

Schon einmal vielen Dank!
Bitte warten ..
Mitglied: bastla
16.12.2015 um 15:38 Uhr
Hallo radihk!

Viel klarer ist es damit nicht - Du könntest aber eine (als "Code" formatierte) Beispieldatei posten ...

Willst Du (wie es Dein Beispiel vermuten ließe) die Reihenfolge der Felder verändern (wäre im Script nämlich nicht vorgesehen)?

Grüße
bastla
Bitte warten ..
Mitglied: radihk
16.12.2015 um 15:49 Uhr
In spalte A1: Pizza Salami
In spalte B2: mit Tomatensauce, Käse, etc.
In spalte C1: 4,90€

So sollte es im Idealfall aussehen.

Nach dem import aus der .txt sieht es aber erst einmal so aus:

Spalte A1: Pizza Salami
Spalte A2: mit Tomatensauce, Käse, etc.
Spalte B1: 4,90€


Sub eins()
Dim Start As Integer
Start = 2
Range(Cells(1, Start), Cells(1, Start + 0)).EntireColumn.Insert
End Sub

--> damit erstelle ich eine neue Spalte und jetzt muss nur noch die "Beschreibung" in diese eingefügt werden.
Bitte warten ..
Mitglied: radihk
17.12.2015 um 09:22 Uhr
Hat wirklich niemand ne Idee wie man das umsetzen könnte?
Bin für jede Hilfe dankbar!
Bitte warten ..
Mitglied: radihk
17.12.2015 um 11:57 Uhr
Ich hab das jetzt mit folgendem Makro hinbekommen. Jetzt müsste das ganze nur noch in einer Schleife durchlaufen.
Jemand einen Rat?

Sub CellsCut()
'Preis
With Range("B1")
.Copy Destination:=Range("C1")
End With
Range("C1").ClearFormats
'Beschreibung
With Range("A2")
.Copy Destination:=Range("B1")
.Value = ""
End With
Range("B1").ClearFormats

'Nächste Zeile
With Range("A3")
.Copy Destination:=Range("A2")
.Value = ""
End With
Range("A2").ClearFormats


'Preis
With Range("B3")
.Copy Destination:=Range("C2")
.Value = ""
End With
Range("C2").ClearFormats

'Beschreibung
With Range("A4")
.Copy Destination:=Range("B2")
.Value = ""
End With
Range("B2").ClearFormats
End Sub
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Txt Dateien in Excel importieren
gelöst Frage von SerbitarMicrosoft Office9 Kommentare

Hallo Kollegen, Ich möchte gerne mittels Excel eine Txt einlesen und die Infos in Spalten aufteilen. Die Spaltenheader sind ...

Windows 7
Mehrere TXT mit Dateinamen in Excel importieren
Frage von Sophie12345Windows 71 Kommentar

Hallo zusammen, ich hoffe jemand kann mir helfen. ich habe mehrere Ordner mit jeweils ca. 40-60 txt Dateien, diese ...

Microsoft Office
Excel 2013 - Daten aus Word Datei ohne Trennzeichen importieren
Frage von AtompiltzMicrosoft Office4 Kommentare

Hallo zusammen, ich möchte die Adressdaten aus einer Word-Datei in Excel importieren. Jede Adresse ist in einer Zeile geschrieben, ...

Microsoft Office
Excel VBA - Inhalte und Dateiname von txt-Dateien automatisch in Excel importieren
gelöst Frage von Booster07Microsoft Office2 Kommentare

Hallo zusammen, folgendes Problem habe ich so leider nicht im Internet finden können. Deshalb hoffe ich auf eure Hilfe. ...

Neue Wissensbeiträge
DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 StundenDSL, VDSL

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 2 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 5 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 1 TagApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server19 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement17 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...