Anzeige
Archiv - Navigation
1536to1540
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

txt.datei und Suche aus Userform heraus

txt.datei und Suche aus Userform heraus
05.02.2017 10:52:51
Sabine
Hallo Zusammen,
ich habe eine Excel Tabelle mit Userform erstellt. Desweiteren eine geöffnete txt.Datei (eingescanntes Dokument .pdf umgewandelt in eine txt. Datei) Nun würde ich gern - wenn der User eine Textbox nach Eingabe einer 8-stelligen Zahl- diese verlässt, geprüft wird ob der Inhalt der Textbox (=Zahl) in der txt.Datei vorkommt - wenn ja soll eine Checkbox angehakt werden wenn nicht kann über eine MsgBox ein Hinweis kommen, dass die Zahl nicht vorkommt.
Ich bin schon seit Tagen am Suchen, aber die CodeSchnipsel die ich finde, erschließen sich mir nicht wirklich, weil ich die verwendeten Begriffe noch nie gehört habe. Vielleicht hatte ja hier in der tollen Gemeinde schon mal ähnliches erstellt und kann mir helfen - vllt. auch mit der einen oder anderen Randbemerkung zur Erklärung was womit gerade im Programmcode passiert. Ich möchte nicht nur "reinkopieren" sondern auch verstehen.
Vielen Dank.
Herzliche Grüße
Sabine

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: txt.datei und Suche aus Userform heraus
05.02.2017 11:25:18
ransi
HAllo Sabine,
Schau mal ob dich das weiterbringt:
' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************

Option Explicit


Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Dim FSO As Object
    Dim txtDatei As Object
    Dim strText As String
    Const Pfad = "C:/Test/test.txt" 'anpassen
    If TextBox1.Text Like "########" Then 'prüfen ob n8 Ziffern eingegeben wurden
        Set FSO = CreateObject("scripting.Filesystemobject")
        Set txtDatei = FSO.opentextfile(Pfad, 1) 'Textdatei zum Lesen öffnen
        strText = txtDatei.readall 'Textdatei in string einlesen
        'txtDatei.Close 'Tetxdatei schließen
        If InStr(1, strText, TextBox1.Text) > 0 Then 'Prüfen ob die 8 Ziffern in textdatei vorhanden sind
            CheckBox1.Value = True
            Else:
            CheckBox1.Value = False
            MsgBox "Nix gefunden"
        End If
        Else:
        MsgBox "Gib 8 Ziffern ein!"
    End If
End Sub


ransi
Anzeige
AW: txt.datei und Suche aus Userform heraus
05.02.2017 14:38:54
Sabine
Hallo ransi,
das funktioniert genau wie ich es wollte. DANKESCHÖÖÖÖÖN. Ich bin begeistert.
noch eine Frage zum Verständnis:
in die Variable strText wird tatsächlich der Inhalt der ganzen txt Datei eingelesen? Egal wie lang der Text ist? Ist die Variable auf eine bestimmt Zeilenanzahl begrenzt?
Grüße
Sabine
txt.datei und Suche aus Userform heraus
05.02.2017 12:20:24
Anton
Auch hallo,
hier noch mit einer Beispeildatei.
mfg Anton
AW: txt.datei und Suche aus Userform heraus
05.02.2017 13:23:31
fcs
Hallo Sabine,
damit man prüfen kann ob die einegegeben Zahl in der Textbox in einer Textdatei vorhanden ist muss im Userform/in Excel der Dateiname der Textdatei bekannt sein.
Es ist kompliziert/schwierig über die Windowsoberfläche Pfad und Name der geöffneten Text-Datei zu ermitteln.
Einfacher ist es, wenn die Datei im Userform ausgewählt wird.
Ich hab mal eine Beispiel-Datei mit einem Userform erstellt und dabei 2 Varianten für die Auswertung der Textbox-Eingabe eingebaut.
https://www.herber.de/bbs/user/111214.xlsm
LG
Franz
Anzeige
AW: txt.datei und Suche aus Userform heraus
05.02.2017 16:52:32
Sabine
Hallo Franz,
ich habe den Code von ransi etwas angepasst. Ich wandele die .pdf in eine .txt Datei um und speichere diese unter einer bestimmten RG-Nr. mit der Endung .txt ab. Diese RG-Nr. befindet sich auch auf der Userform. Ich habe nun eine if-Anweisung dem Code vorangestellt, so dass er nur ausgeführt wird, wenn die Textdatei vorhanden ist. Ich denke damit habe ich Deinen Gedanken bereits unbewusst umgesetzt.Ich habe garnicht soweit gedacht sondern recht gezielt einen bestimmten .txt Dateinamen vorausgesetzt.
Bei mir am Rechner daheim funktionert es gut, morgen muss ich dann im Büro auf Funktionalität im Netzwerk prüfen.
Mein Code sieht sie aus:

dateirg = RGa.Value & ".txt"  'RGa ist Feld mit der RG-Nr.
Pfad = "C:\Users\Sabine\Documents\" & dateirg 'anpassen
If Dir(Pfad) = "" Then Exit Sub
If TextBox1.Text Like "########" Then 'prüfen ob n8 Ziffern eingegeben wurden
Set FSO = CreateObject("scripting.Filesystemobject")
Set txtDatei = FSO.opentextfile(Pfad, 1) 'Textdatei zum Lesen öffnen
strText = txtDatei.readall 'Textdatei in string einlesen
'        txtDatei.Close 'Tetxdatei schließen
If InStr(1, strText, TextBox1.Text) > 0 Then 'Prüfen ob die 8 Ziffern in textdatei  _
vorhanden sind
GelBe.Value = True    'Checkbox an
Else:
GelBe.Value = False
GelBeHinweis.Caption = " fehlt"   'Hinweis erscheint in einem Beschriftungsfeld
End If
Else:
MsgBox "Gib 8 Ziffern ein!"
End If
Ich bin schon ganz gespannt ob es klappt. Nur Sorge bereitet mir der Gedanke wie "groß" der Inhalt der Variable strText sein darf. Getestet habe ich es mit einem pdf über 3 Seiten. Im Alltag werden es dann ehter 20-30 Seiten sein. Ich hoffe das geht dann trotzdem noch!?
Herzliche Grüße
Sabine
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige