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

Werte aus txt-File in Excel einlesen

Mitglied: manuel5

manuel5 (Level 1) - Jetzt verbinden

09.03.2008, aktualisiert 19:57 Uhr, 8420 Aufrufe, 8 Kommentare

Hallo mal wieder,

folgendes Problem --> habe ein TXT-File in welchen viele viele Daten angegeben sind - die Werte sind so aufgebaut -->

?FELDBEZEICHNUNG FELDINHALT FEHLERTEXT
"?FIRMENNUMMER (MANDANT) " 11111
"?KUNDENNUMMER " 1111
"?KUNDENINDEX " 0
"?LIEFERUNGS-/LEISTUNGSDATUM " 20080229
"?FIRMENNUMMER (MANDANT) " 22222
"?KUNDENNUMMER " 2222
"?KUNDENINDEX " 0
"?LIEFERUNGS-/LEISTUNGSDATUM " 20080229
"?FIRMENNUMMER (MANDANT) " 11111
"?KUNDENNUMMER " 112211
"?KUNDENINDEX " 0
"?LIEFERUNGS-/LEISTUNGSDATUM " 20080229
"?FIRMENNUMMER (MANDANT) " 33333
"?KUNDENNUMMER " 1212
"?KUNDENINDEX " 0
"?LIEFERUNGS-/LEISTUNGSDATUM " 20080229

nun mein Problem - ich wuerde die Daten gerne so einlesen das er mir nur die Daten des Lieferanten 1212 einliesst (Dieser kommt in dem Text-File öfter vor) UND die Daten die jetzt links stehen --> KUNDENNUMMER ; FIRMENNUMMER (MANDANT) etc als Spaltenüberschriften nimmt.

Das einlesen einer Textdatei in Excel ist das kleinste Problem - simple everst!

Aber das umsteigen von der Zellen"Überschrfit" in ne Spalten"Überschrift" -- keine Ahnung und auch das er mir nur die Werte des KUNDEN 1212 ins Excel übergibt.

Und die Feldbezeichnung Feldinhalt und Fehlertext sollte dann lnks in den Zellen stehen...


HAt da jemand ne Idee zu?

Gruß Manuel
Mitglied: bastla
09.03.2008 um 16:18 Uhr
Hallo manuel5!

So ganz klar sind mir Deine Ausgangsdaten und auch Dein Vorhaben nicht - wie ich das zu verstehen meine, würde sich aus Deinem angeführten Beispiel unter Berücksichtigung der Forderung, nur Daten mit "?KUNDENNUMMER " 1212 zu verwenden, etwa folgende Exceltabelle ergeben:

ABCDE
1FELDBEZEICHNUNGFIRMENNUMMER (MANDANT)KUNDENNUMMERKUNDENINDEXLIEFERUNGS-/LEISTUNGSDATUM
2FELDINHALT333331212020080229
3FEHLERTEXT

Entspricht dies Deiner Zielvorstellung? Falls nein, versuche doch bitte, die gewünschte Anordnung ebenfalls tabellarisch (siehe dazu die "Formatierungs-Hilfe" in "Häufige Fragen" bzw beim Erstellen eines Kommentars) darzustellen.

Auch der Inhalt der Textdatei wird mit einer anderen Formatierung (verwende dazu <code>-Tags) leichter nachvollziehbar.

Grüße
bastla
Bitte warten ..
Mitglied: manuel5
09.03.2008 um 16:33 Uhr
Ja, sorry - genaus solls aussehen

AB CD EF GH
1FELDBEZEICHNUNG FIRMENNUMMER (MANDANT) KUNDENNUMMER KUNDENINDEX LIEFERUNGS-/LEISTUNGSDATUM FEHLER
2 Feldbezeichnung 333331212020080229Formal fehlerhaft
3



also ich brauch die "Spalten" aus dem Texfile in Zellen untereinander im Excel

Gruß Manuel
Bitte warten ..
Mitglied: bastla
09.03.2008 um 16:39 Uhr
Hallo manuel5!

Woher kommt "Formal fehlerhaft" (und wozu brauchst Du eigentlich die erste Spalte - hier würde sich ja eigentlich ohnehin nur immer der Text "Feldbezeichnung" wiederholen)?

Grüße
bastla
Bitte warten ..
Mitglied: manuel5
09.03.2008 um 17:05 Uhr
Stimmt die erste Spalte kann man knicken

Das "Formal fehlerhaft" kommt eigentlich in der Spalte weit unten - Hier gehts um Belege welche eben hier auschlaggebend sind

Ein Beleg sieht im ganzen so aus -->

?FELDBEZEICHNUNG FELDINHALT "FEHLERTEXT
?* Beleg " "
"?FIRMENNUMMER (MANDANT) " 10
"?Firmennummer " 1212
"?FirmenINDEX " 0
"?LIEFERUNGS-/LEISTUNGSDATUM " 20080219
"?UMSATZSTEUERTYP " DEUTSCHE
"?FAELLIGKEIT " 20080325
"?LEISTUNGSKENNZIFFER (LZB) "
"?VORGANG " GKLIE
"?WAEHRUNG " EUR
"?KURS "
"?WAREN-/LEISTUNGSWERT " 1.500
"?FRACHTWERT " 0
"?VERPACKUNGSWERT " 0
"?UMSATZSTEUERWERT " 1,5
"?RECHNUNGSENDWERT " 10,8
"?SKONTOWERT "
"?SKONTOSATZ "
"?SKONTOANGEBOT-SATZ " 0
"?SKONTOANGEBOT-FRIST " 0
"?BARCODENUMMER " #22222222222
"?AUFTRAGSNUMMER " 111111111
"?LIEFERSCHEINNUMMER "
"?VORLAEUFIGE FREIGABE "
"?SPERRNUMMER "
"?REFERENZ " 26584
"?DFUE-KENNUNG " NORM=INVOICD 96ADATE=2008022918292677
"?DFUE-DATUM " 20080229
"?BestellNUMMER " ???????? _________________________________________ FORMAL FEHLERHAFT

Dann faengst wieder von vorne an mit -->

?FELDBEZEICHNUNG FELDINHALT "FEHLERTEXT
?* BELEG "
"?FIRMENNUMMER (MANDANT) " 10
"?FirmenNUMMER " 1213
..
.
..
.
..
.
..


uns so weiter - s geht über ca 200 Belege im Word-Doc sinds ca 230 Seiten

Ist schwer zu erklären - ich könnte dir das txt-File per Mail zukommen lassen.

Gruß Manuel
Bitte warten ..
Mitglied: bastla
09.03.2008 um 18:13 Uhr
Hallo manuel5!

Ein Excel-Makro zur Umsetzung Deines Vorhabens könnte etwa so aussehen:
01.
Option Explicit 
02.
 
03.
Sub Einlesen() 
04.
 
05.
Dim Kunde As String, Kundenfeld As Integer, Feldauswahl(), Feldbezeichnungen() 
06.
Dim fso As Object, TextDatei As Object, Felder() As String, Zeile As Integer, i As Integer, Daten() As String 
07.
 
08.
'####### Anpassungen ####### 
09.
Const Datei As String = "D:\Datei mit Buchungen.txt" 
10.
 
11.
Kunde = "1212" 'nur Daten dieses Kunden übernehmen ("" für: alle Kunden) 
12.
Kundenfeld = 4 'Lfd (Zeilen-)Nummer des Feldes mit der Kundennummer lt Textdatei 
13.
 
14.
Feldbezeichnungen = Array("FIRMENNUMMER (MANDANT)", "KUNDENNUMMER", "KUNDENINDEX", "LIEFERUNGS-/LEISTUNGSDATUM", "FEHLER") 
15.
Feldauswahl = Array(3, 4, 5, 6, 30) 'Lfd (Zeilen-)Nummer des in die Tabelle einzutragenden Feldes 
16.
 
17.
Zeile = 1 'Zeilennummer für Spaltenüberschriften 
18.
 
19.
Const Header As String = "?FELDBEZEICHNUNG FELDINHALT ""FEHLERTEXT" 'erstes Feld jeden Datensatzes 
20.
Const FeldAnzahl As Integer = 30 'Feldanzahl je Datensatz 
21.
'####### Anpassungen Ende ####### 
22.
 
23.
 
24.
For i = 0 To UBound(Feldbezeichnungen) 
25.
    Cells(Zeile, i + 1).Value = Feldbezeichnungen(i) 
26.
Next 
27.
Zeile = Zeile + 1 
28.
 
29.
Set fso = CreateObject("Scripting.FileSystemObject") 
30.
Set TextDatei = fso.OpenTextFile(Datei, 1) 
31.
 
32.
If Not TextDatei.AtEndOfStream Then 
33.
    Do 
34.
        ReDim Felder(FeldAnzahl) 'Array für neuen Datensatz löschen 
35.
        Felder(1) = TextDatei.ReadLine 
36.
        If UCase(Felder(1)) = UCase(Header) Then 'Datensatz gefunden 
37.
            For i = 2 To FeldAnzahl 
38.
                If Not TextDatei.AtEndOfStream Then 
39.
                    Daten = Split(TextDatei.ReadLine, """") 
40.
                    Felder(i) = Trim(Daten(UBound(Daten))) 
41.
                Else 
42.
                    MsgBox "Datensatz nicht vollständig!", vbExclamation, "Datenfehler" 
43.
                    Exit Do 
44.
                End If 
45.
            Next 
46.
            If InStr(1, Felder(Kundenfeld), Kunde, vbTextCompare) Then 'nur Daten des vorgegebenen Kunden eintragen 
47.
            'If Felder(Kundenfeld) = Kunde Then 'Daten nur bei exakter Übereinstimmung eintragen 
48.
                For i = 0 To UBound(Feldauswahl) 'vorgegebene Felder in Tabelle eintragen 
49.
                    Cells(Zeile, i + 1).Value = Felder(Feldauswahl(i)) 
50.
                Next 
51.
                Zeile = Zeile + 1 
52.
            End If 
53.
        End If 
54.
    Loop Until TextDatei.AtEndOfStream 
55.
Else 
56.
    MsgBox "Die Datei " & Datei & " enthält keine Daten!", vbExclamation, "Keine Daten gefunden!" 
57.
End If 
58.
TextDatei.Close 
59.
End Sub
Zur Verwendung: Erstelle eine neue Excel-Mappe, wechsle über Rechtsklick auf das Blattregister "Tabelle1" und die Auswahl "Code anzeigen" in den VBA-Editor und füge dort das Makro in das große Codefenster ein.

Die Zeilen zwischen " Anpassungen " und " Anpassungen Ende " enthalten die Vorgaben, welche Du zunächst überprüfen und (zumindest hinsichtlich des Dateinamens) anpassen musst.

Die Einschränkung auf eine vorgegebene Kundennummer (im Beispiel "1212") erfolgt in dieser Version so, dass geprüft wird, ob die eingelesene Kundennummer den Suchbegriff enthält - daher würden auch Datensätze des Kunden "12125" erfasst. Falls Du auf eine genaue Übereinstimmung überprüfen willst, musst Du das Apostroph (') vor der Zeile
01.
'If Felder(Kundenfeld) = Kunde Then 'Daten nur bei exakter Übereinstimmung eintragen
entfernen und vor die vorherige Zeile
01.
If InStr(1, Felder(Kundenfeld), Kunde, vbTextCompare) Then 'nur Daten des vorgegebenen Kunden eintragen
setzen.

Starte das Makro, indem Du den Cursor an eine beliebige Position zwischen "Sub Einlesen()" und "End Sub" setzt und "F5" drückst oder die grüne "Play"-Schaltfläche in der Symbolleiste anklickst - das sollte es eigentlich gewesen sein ...

Grüße
bastla
Bitte warten ..
Mitglied: manuel5
09.03.2008 um 19:29 Uhr
Hallo bastla,

das schaut sich schon sehr gut aus - er macht mir zumindst schon mal die Überschriften

Was er aber nicht macht is - Wenn AUFTRAGSNUMMER FORMAL FEHLERHAFT das trage mir in Zeile 1 in Spalte A die Firmennummer/Kundennummer ein in Zeile 1 Spalte B die Kundenummer usw ein
Duchsuche den nächsten Beleg der bei ?FELDBEZEICHNUNG FELDINHALT "FEHLERTEXT wieder beginnt und Wenn AUFTRAGSNUMMER FORMAL FEHLERHAFT das trage mir in Zeile 2 in Spalte A die Firmennummer/Kundennummer ein in Zeile 2 Spalte B die Kundenummer usw ein
wenn nicht trage nichts ein und gehe zum nächsten Beleg

Da haperst noch nStück, aber es wird )

Gruß Manuel
Bitte warten ..
Mitglied: bastla
09.03.2008 um 19:36 Uhr
Hallo manuel5!

Seit wann soll denn "AUFTRAGSNUMMER FORMAL FEHLERHAFT" das Kriterium für das Eintragen eines Datensatzes sein?

However - wenn Du die Zeilen
01.
Kunde = "1212" 'nur Daten dieses Kunden übernehmen ("" für: alle Kunden) 
02.
Kundenfeld = 4 'Lfd (Zeilen-)Nummer des Feldes mit der Kundennummer lt Textdatei
durch
01.
Kunde = "FORMAL FEHLERHAFT" 
02.
Kundenfeld = 23
ersetzt, sollte es auch damit klappen (vorausgesetzt, die Struktur Deiner Textdatei entspricht dem oben angegebenen Beispiel und es ist mit "AUFTRAGSNUMMER" die Zeile 23 gemeint) ...

Grüße
bastla
Bitte warten ..
Mitglied: manuel5
09.03.2008 um 19:57 Uhr
HAllo bastla,

hmmmm - genau das is das Problem auch - die Belege bzw die Felder sind nicht immer "gleich viele"
Kann man da nicht sagen - Fange bei ?FELDBEZEICHNUNG FELDINHALT "FEHLERTEXT an und dann suche ob AUFTRAGSNUMMER FORMAL FEHLERHAFT wenn ja -->

dann trage mir in Zeile 1 in Spalte A die Firmennummer/Kundennummer ein in Zeile 1 Spalte B die Belegnummer usw ein dann gehe zum nächsten ?FELDBEZEICHNUNG FELDINHALT "FEHLERTEXT und ob hier bei AUFTRAGSNUMMER FORMAL FEHLERHAFT dann trage mir in Zeile 2 in Spalte A die Firmennummer/Kundennummer ein in Zeile 2 Spalte B die Kundenummer usw ein

Was noch gehen könnte wäre - Wenn AUFTRAGSNUMMER = Formal fehlerhaft dann gehe hoch bis Kundennummer -- nimm diese und trage sie ein dann die Rechnungsnummer/Belegnummer und trage sie ein.....


Das grundsätzlich wie ich vorgehen soll/kann ist mit n Rätsel.

Gruß Manuel
Bitte warten ..
Ähnliche Inhalte
VB for Applications

Einlesen von Txt-Dateien mit unterschiedlichen Trennern mit Excel VBA

gelöst Frage von mhsk97VB for Applications12 Kommentare

Hallo Wissende, ich habe eine Textdatei mit unterschiedlichen Trennern vorliegen die ich über ein Excelmakro einlesen und schlußendlich als ...

XML

Einlesen bestimmten Werten, Texten aus XML- Datei in EXCEL

gelöst Frage von EverestXML11 Kommentare

Hallo Experten, ich möchte in Excel die Werte/Texte aus einer XML-Datei direkt lesen ohne sie zu importieren. Kann jemand ...

Microsoft Office

Txt-file in excel öffnen (bereitstellung durch erp-system)

gelöst Frage von seppmairhubrMicrosoft Office15 Kommentare

Hallo, Servus und Guten Tach! Ich hab folgendes Problem, daher wende ich mal wieder an die Kollegen: TS 2012R2 ...

Batch & Shell

Wert in einer TXT Datei suchen

Frage von nolle99Batch & Shell11 Kommentare

Hallo Leute Ich habe ein Problem Ich habe mir von meiner Seite alle URLs in einer TXT gespeichert (30.000 ...

Neue Wissensbeiträge
SAN, NAS, DAS
QNAP NAS Datenschutz-Loop nach Firmware-Update
Tipp von vanTast vor 18 StundenSAN, NAS, DAS2 Kommentare

Moin, im allgemeinen Trend seine geänderten Datenschutzbedingungen den Kunden zukommen zu lassen kam die Firma QNAP auf die glorreiche ...

Datenschutz
DSGVO Datenschutzgesetz
Anleitung von 1Werner1 vor 20 StundenDatenschutz4 Kommentare

Moin, ja was ist das, da ist die DSGVO Datenschutzverordnung. Wie das Gesetz gibt es schon 2 Jahre? Nun ...

CPU, RAM, Mainboards

Neverending Story: Google und Microsoft melden neue Chip-Sicherheitslücke

Information von keine-ahnung vor 1 TagCPU, RAM, Mainboards1 Kommentar

Da kommt man mit dem fixen gar nicht mehr hinterher und die CPU erreichen wieder Rechenleistungen im Bereich des ...

Multimedia & Zubehör
AVM Fritz USB WLAN Sticks schneller einschalten
Tipp von NetzwerkDude vor 3 TagenMultimedia & Zubehör4 Kommentare

Die AVM Fritz WLAN Sticks haben in der Firmware 2 Modis: Einmal als Massenspeicher und einmal als WLAN Netzwerkkarte ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Powerline über zwei Stockwerke optimieren
gelöst Frage von DultusLAN, WAN, Wireless42 Kommentare

Guten Morgen liebes Forum, ich hätte einmal eine Frage bezüglich Powerline Adapter: Mein Problem ist seit gestern präsent, da ...

PHP
Nach Umzug zu 1und1 bekomme ich beim Eintrag in die DB Tabelle folgenden Fehler
gelöst Frage von jensgebkenPHP35 Kommentare

INSERT command denied to user 'dbo45342345342231244'@'112.127.102.073' for table 'orders'

Windows Userverwaltung
Problem mit Benutzerprofil
Frage von lieferscheinWindows Userverwaltung24 Kommentare

Guten Tag liebe Community, folgendes Problem habe ich: User meldet sich auf Client A an - sein Homelaufwerk verbindet. ...

Off Topic
DISKUSSION: Was bringt der Disclaimer "Wenn Sie nicht der Empfänger sind."
Frage von N8DragonOff Topic21 Kommentare

So oder ähnlich, lese ich immer wieder Kleingedrucktes am Ende diverser Mails. Letzten Endes wollen sie mir alle sagen, ...