Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1684to1688
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

UserForm mit Textfile

UserForm mit Textfile
09.04.2019 15:53:00
Pascal
Hallo liebe Forumsgemeinde
Ich hab ein VBA-Problem und hoffe natürlich sehr, dass mir jemand hier weiterhelfen kann.
Im beiliegenden ZIP-Archiv hab ich mal eine Datei mit Userform auf die Schnelle zusammengestellt.
https://www.herber.de/bbs/user/129038.zip
Ziel soll es sein, die Daten des Textfiles in den entsprechenden Feldern auf der Userform anzeigen zu lassen und
durch die einzelnen Datensätze blättern zu können.
Es soll auch die Möglichkeit bestehen, Datensätze genau gemäss Aufbau im Textfile – durch Befüllen der Textfelder auf der
UserForm ins Textfile zu schreiben… oder aber Datensätze zu mutieren und zu löschen.
Wie müsste ich da weiter vorgehen?
Wie lese ich diese Textfiles in die UserForm Textfelder ein?
Wäre sehr nett, wenn mir jemand von Euch Profis hier weiterhelfen könnte.
Grüsst Euch:
Pascal

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

Betreff
Datum
Anwender
Anzeige
Die gute alte Daten"maske" benutzen.
09.04.2019 16:36:53
EtoPHG
Hallo Pascal,
1. Das ist keine "free" Textdatei, sondern eine klassische CSV Datei. Also sollte auch deren Extension so lauten.
2. Einfach über Daten als CSV importieren
3. Es gibt immer noch die (Daten)Maske... in Excel, die auf solche strukturierten Tabellen all Deine Wünsche (Lesen, mutieren, löschen, einfügen) plus noch ein paar mehr (suchen, filtern) erfüllt. Zu finden über Menüband anpassen in der Gruppe "Befehle nicht in Multifunktionsleiste" unter "Maske". Einfach in die importierte Liste klicken und anschliessend auf das neu eingefügte "Maske"-Symbol.
4. Nach den Änderungen Blatt wieder als CSV exportieren.
Das geht alles ohne VBA!
Gruess Hansueli
Anzeige
AW: Die gute alte Daten"maske" benutzen.
10.04.2019 06:44:21
Pascal
Guten Morgen
besten Dank schon mal für die Hilfe.
Die Datei darf nicht als CSV gespeichert werden, sondern muss als TXT bleiben, da diese Datei dann in ein weiteres Programm/Software übergeben und importiert werden muss.
Aber das mit der Masken-Funktion schau ich mir mal näher an.
Grüsse und einen guten, schönen Tag:
Pascal
Mit "Maske" geht es kürzer, schneller und
09.04.2019 16:57:47
EtoPHG
ohne VBA und Userforms, Pascal
CSV Datei doppelklicken um mit Excel zu öffnen.
Mit "Maske" (engl. "Form...") Manipulieren.
Schliessen und Sichern.
Gruess Hansueli
AW: UserForm mit Textfile
10.04.2019 06:57:56
Pascal
Moin zusammen
also... die gute alte Maske welche ich von EtoPHG empfohlen bekam, macht eigentlich genau was ich haben müsste.
ABER:
Ich brauch dennoch eine eigene UserForm (genau analog der Maske aus Excel) welche ich zum erzeugen von meinen Textfiles brauche.
D.h. ich muss .TXT - Files analog dem File in meinem Bespiel erzeugen können. Keine CSV-Dateien.
Die gute alte Maske aus Excel übernimmt die Spaltennamen als Text-Feld-Namen. Die kann ich nicht ändern.
d.h. in meinem zu erzeugenden Text-File müssen die Spalten zwar genau so heissen, aber auf der UserForm sollen diese eben anders heissen, damit der Benutzer genau weiss was hier gemeint ist, resp. was ins entsprechende Feld zu schreiben ist.
Kann ich also selber eine UserForm - analog der Maske - erstellen und so programmieren, dass die eigentlich genau das gleiche macht, wie die herkömmliche Maske aus Excel, nur … mit anderen Feldnamen und anderem Layout ?
Besten Dank für die Unterstützung !
Anzeige
AW: UserForm mit Textfile
10.04.2019 13:23:43
Pascal
Hallo nochmal!
Ich habe nun noch etwas an meinem Beispiel weitergearbeitet.
(siehe ZIP-File im Anhang!)
https://www.herber.de/bbs/user/129060.zip
Wenn ich nun in der UserForm auf die Schaltfläche "Öffnen" klicke und das .txt File auswähle (welches ich mir vorgängig irgendwo auf meinem
Rechner abgespeichert hatte) so wird das File geöffnet und die erste Zeile des .txt File auf der UserForm im Textfeld1 ausgegeben.
Soweit so gut!
Problem ist nun aber …
Die erste Zeile im .txt File ist nicht ein Datensatz sondern die Überschriften.
Es sollen natürlich die Daten nicht alle im Textfeld1 ausgegeben werden, sondern jeder Datensatz soll in ein anderes Textfeld angezeigt werden.
(im Textfile sind die Feldwerte mittels einem ";" getrennt)
Ziel soll nun sein, dass ich mit meiner UserForm also das Textfile öffnen, bearbeiten, Datensätze löschen und aber auch Datensätze hinzufügen kann.
Weiter soll meine UserForm die Möglichkeit bieten (sollte noch gar kein Textfile vorhanden sein) ein solches (genau mit gleichem Aufbau wie die Beispiels-txt-Datei) zu erzeugen und irgendwo anzulegen.
Wäre super wenn mir jemand von Euch hier behilflich sein könnte.
Im Voraus schon mal ganz herzlichen Dank!
Pascal
Anzeige
AW: UserForm mit Textfile
10.04.2019 13:45:44
EtoPHG
Hallo Pascal,
Schön, dass du zugunsten Deiner Anwender auf die eingebauten Excel-Funktion "Maske" verzichtest.
Das ganze tönt dann doch nach einer Auftragsarbeit, denn bei dem angegeben VBA-Level wirst du ev. überfordert sein.
Ich würde trotzdem das Textfile über Daten importieren (Trennzeichen ;)
Dann kannst Du im Tabellenblatt (Zeilen) navigieren und den Inhalt der Zellen in deine Textboxen abfüllen und bei Änderungen wieder zurückschreiben.
Wenn du die Überschriften anders haben willst, brauchst du eine Mapping-Tabelle, in der du den gegebenen Überschriften deine Ausdrücke zuordnen kannst und verwendest dies als Labelbezeichnungen.
Viel Vergnügen beim Basteln!
Gruess Hansueli
Anzeige
AW: UserForm mit Textfile
10.04.2019 14:02:46
Pascal
Ja... es MUSS eine UserForm sein! Ich denke, dass ich das schon irgendwie schaffe, wenn ich mal den Trick raushabe, wie ich die Daten aus dem Textfile schön in die einzelnen Textfelder aufgelistet kriege.
Wie schon geschrieben, bin ja schon mal soweit, dass mir die Titelzeile des Textfiles in Textfeld1 eingelesen wird.
Diese Titelzeile soll aber nie mutiert werden im Textfile. D.h. eigentlich sollen die Daten aber der zweiten Zeile im Textfile eingelesen werden in die einzelnen Textfelder.
Die Daten werden ja im Textfeld durch ";" getrennt. Also sollte es doch irgendwie möglich sein (analog der guten alten Excel-Maske) die Daten schön in die einzelnen Textfelder aufzuteilen.
wenn ich dann in meiner UserForm scrolle, so soll durch die einzelnen Datensätze im Textfile geblättert werden können.
Es soll nicht eine Auftragsarbeit werden... es soll was gelernt und "selbst" erzeugt werden.
Danke schon mal herzlich für die Unterstützung
Anzeige
Bentuze Split(String, Separator) (owT)
10.04.2019 15:11:46
EtoPHG

AW: Bentuze Split(String, Separator) (owT)
11.04.2019 07:24:20
Pascal
Guten Morgen EtoPHG
Danke für Deinen Hinweis
haste allenfalls irgendwo ein Beispiel, wie genau man die Userform mittels dem Splitt(String, Separator) an eine Textdatei anbindet?
AW: Benutze Split(String, Separator) (owT)
11.04.2019 09:44:42
EtoPHG
Hallo,
Ich dachte, du machst keine Auftragsarbeit daraus!
Als Beispiel für deinen Do-Until-Loop
' Deklarationen
Dim inputArray
Dim lRecCnt As Long
Dim lXArray As Long
' Code...
Do Until EOF(intDatei)
'intZeile = intZeile + 1         ' die gelesenen Zeile zählen
Line Input #intDatei, strText
'If intZeile = 10 Then Exit Do   ' nur 10 Zeilen lesen
lRecCnt = lRecCnt + 1
inputArray = Split(Replace(strText, """", ""), ";")
For lXArray = 0 To UBound(inputArray) - 1
If lRecCnt = 1 Then
Me.Controls("Label" & Trim(CStr(lXArray + 1))) = CStr(inputArray(lXArray))
Else
Me.Controls("TextBox" & Trim(CStr(lXArray + 1))) = CStr(inputArray(lXArray))
End If
Next lXArray
Stop
Loop
Close #intDatei
...der im Übrigen eine falsche Auswahl für dein Vorhaben (Navigieren und Mutieren) ist, denn so wird einfach die Ganze Datei bis zum Schluss ausgelesen. Darum hab ich jetzt nach jedem Record (Line Input) ein Stop eingebaut, damit du 'Debuggen' kannst, was da passiert, bzw. dich vorwärts von Record zu Record hangeln kannst.
Im Übrigen funktioniert der Code nur wenn auch die TextBoxen in der UF durchgehend von 1-22 nummeriert sind (und nicht wirr durcheinander, wie in Deinem Beispiel!).
Gruess Hansueli
Anzeige
AW: Benutze Split(String, Separator) (owT)
11.04.2019 10:05:52
Pascal
Hallo Hansueli
vielen herzlichen Dank für Dein Beispiel ! Daraus werde ich bestimmt einiges lernen können.
bezüglich der Durchnummerierung... natürlich hab ich das in der "scharfen" Datei korrekt umgesetzt.
ich werde mir den Code nun mal schön Schritt für Schritt anschauen und versuchen daraus zu lernen was genau … warum passiert.
Komme dann gerne bei allfälligen Rückfragen auf Dich zu

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige