Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Daten aus Textdatei einlesen
#1
Hallo zusammen,

ich würde gerne Daten aus einer Textdatei einlesen, deren Name sich ändern kann (hochlaufende Nummer).

Das ist jedoch nicht alles. Ich benötige NUR eine Ziffernfolge aus der Textdatei, die UNTERSCHIEDLICH LANG sein kann und IMMER 2 Zeichen vor dem ersten Doppelpunkt in der Datei endet. Der Anfang der Ziffernfolge ist dann immer 8 oder 9 Zeichen weiter links (vor der Zahl ist IMMER ein Leerzeichen!).

Wäre jemand so nett, und würde mir eine Funktion für diese Logik basteln?

Gruß Simon
Antworten Top
#2
Hi Simon,


Zitat:Wäre jemand so nett, und würde mir eine Funktion für diese Logik basteln?

yep, wenn du einen relevanten Tabellenausschnitt hochlädtst. Es reichen 5-10 Datensätze, gerne anonymisiert, aber vom Aufbau her absolut identisch mit deinem Original. Lies dazu bitte hier nach: http://www.clever-excel-forum.de/Thread-...einstellen
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#3
Hallöchen,

da soll eine Textdatei gelesen werden und keine Tabelle Smile

Hier mal ein Ansatz - erst mal für eine Datei zum testen. Siehe Kommentare, schaue dann ins Direktfenster, ob die richtige Zahl ausgelesen wurde. Ich habe hier noch nicht die zwei Zeichen vor dem Doppelpunkt berücksichtigt.

Code:
Sub test()
'Variablendeklarationen
'Objekt
Dim fso As Object, objtext As Object
'Variant
Dim MeineZahl
'Scripting setzen
Set fso = CreateObject("Scripting.FileSystemObject")
'Textobjekt setzen - Dateinamen anpassen!
Set objtext = fso.OpenTextFile("I:\Test\MeinText.txt", 1)
'Datei komplett einlesen
MeineZahl = objtext.ReadAll
'Zahl extrahieren.
'Innere Anweisung: Teil vor erstem Doppelpunkt extrahieren,
'Aeussere Anweisung: ersten Teil zerteilen
MeineZahl = Split(Split(MeineZahl, ":")(0), " ")
'Bestandteil nach letztem Leerzeichen ausgeben
Debug.Print MeineZahl(UBound(MeineZahl))
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#4
Hallo zusammen,

sorry, dass ich mich jetzt erst melde!

Danke für Eure Antworten. Leider kann ich mit dem Codebeispiel nicht so viel Anfangen. Ich weiß leider nicht wie man Makros erzeugt, geschweige denn sinnvoll anwendet.

Ich habe 2 Dateien angehangen. Ziel ist es, immer die erste Zahl in den Klammern automatisch in Excel einzulesen (in dem Beispiel wäre das die Zahl "4839"). Die Struktur der Textdatei ist IMMER gleich und in diesem Format. Lediglich der NAME der Textdatei kann sich ändern. Es wäre also von Vorteil, wenn man den Namen der Textdatei variabel eingeben könnte, und dann bei "klick auf einen Button" den Wert aus dieser Datei einlesen könnte.
 
könnte mir da einer was schnipseln?

Ich bedanke mich schon mal für eure Hilfe.

Gruß Simon


Angehängte Dateien
.xlsx   bla.xlsx (Größe: 8,28 KB / Downloads: 5)
.txt   bla.txt (Größe: 324 Bytes / Downloads: 5)
Antworten Top
#5
Hallo Simon,

für die Sache mit den Makros kannst Du Dich da informieren:
http://www.vba-tutorial.de/

Mit Deinem Beispieltext habe ich jetzt ein Problem. Wo ist denn da der Doppelpunkt??
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#6
(04.10.2017, 16:32)schauan schrieb: Hallo Simon,

für die Sache mit den Makros kannst Du Dich da informieren:
http://www.vba-tutorial.de/

Mit Deinem Beispieltext habe ich jetzt ein Problem. Wo ist denn da der Doppelpunkt??

sorry, habs aktualisiert!


Angehängte Dateien
.txt   bla2.txt (Größe: 331 Bytes / Downloads: 4)
Antworten Top
#7
Schauan? Noch da ? Smile
Antworten Top
#8
Hallöchen,

Zitat:Schauan? Noch da ? Smile
... es gibt auch noch Leute, die zur Arbeit gehen Sad

Mit ALT+F11 kommst Du in den Makroeditor. Dort hast Du auf der linken Seite einen Projektexplorer, der so etwa funktioniert wie der von Windows. Du klickst dann auf Deine "Datei" und fügst dort über Menü | Einfügen | Modul selbiges ein und kopierst dort den Code rein. Das Ergebnis sollte dann, wie bei mir, 4839 in G4 sein.

Code:
Sub test()
'Variablendeklarationen
'Objekt
Dim fso As Object, objtext As Object
'Variant
Dim MeineZahl
'Scripting setzen
Set fso = CreateObject("Scripting.FileSystemObject")
'Textobjekt setzen - Dateinamen anpassen!
Set objtext = fso.OpenTextFile("I:\Test\bla2.txt", 1)
'Datei komplett einlesen
MeineZahl = objtext.ReadAll
'Zahl extrahieren.
'Innere Anweisung: Teil vor erstem Doppelpunkt+Klamme :) extrahieren,
'Aeussere Anweisung: ersten Teil nach Klammer "(" zerteilen
MeineZahl = Split(Split(MeineZahl, "):")(0), "(")
'Bestandteil nach letztem Leerzeichen ausgeben
Sheets("Tabelle1").Cells(4, 7) = MeineZahl(UBound(MeineZahl)) * 1
'Debug.Print MeineZahl(UBound(MeineZahl))
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#9
Hallo Schauan,

daaanke, funktioniert Smile

Eine Frage noch:

Im Anhang habe ich einen Screenshot angehangen. "Excel Ansicht" und die "Makro Ansicht" Wenn das Feld G4 leer ist, muss ich zuerst über ALT+F4 in den Makro Modus und dort auf "ausführen" -> "Sub/UserForm ausführen", damit sich die Zahl aktualisiert (bzw das Programm nochmal abläuft). Gibt es eine Möglichkeit, einen Link oder so zu erstellen, sodass ich in der Excel Ansicht den Wert aktualisieren kann, ohne in den "Makro Modus" zu wechseln?


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#10
Hallöchen,

ja, DU hast es im Bild schon richtig beschrieben - mit einem Button. Um da ranzukommen, müsstest Du das Menüband anpassen und die Entwicklertools aktivieren. Dort gibt es dann bei Menü | Einfügen Formularsteuerelemente oder AktiveX...
Den Formularsteuerelementen kannst Du das Makro zuweisen, bei ActiveX kommt ein zusätzliches Makro - Wenn Du im Kontextmenü der Maus auf Code anzeigen gehst - und dort käme z.B. Call Test rein.
Alternativ kannst Du auch irgend ein anderes Objekt nehmen, ein Bild oder ein Rechteck oder ..., und dem ein Makro zuweisen.

Übrigens - auf dem Bild fehlt am Anfang irgendwie ein S bei Sub ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • simon1516
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste