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

Frage Entwicklung VB for Applications

Mitglied: manuel5

manuel5 (Level 1) - Jetzt verbinden

09.03.2008, aktualisiert 19:57 Uhr, 8397 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
Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 6 StundenInternet2 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

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

Information von Lochkartenstanzer vor 10 StundenDSL, VDSL1 Kommentar

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 10 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 14 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

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

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

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
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 ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server15 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...