Anzeige
Archiv - Navigation
1356to1360
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

Dateien durchsuchen und Ergebnis in Listbox auflis

Dateien durchsuchen und Ergebnis in Listbox auflis
09.04.2014 18:42:37
andreas
Hallo Gemeinde,
mit nachfolgendem Code kann ich eine Exceltabelle durchsuchen und das Ergebnis in einer Listbox auflisten.
Wie kann ich die Suche auf alle Exceltabellen in einem Verzeichnis erweitern?
Danke für eure Hilfe.
andreas
' Suche nach Kontentext und anzeige in einer Listbox,
' nach Auswahl eines Kontos springen in die Tabellenzeile

Private Sub cmdsuchtext_Click()
Dim zeile As Integer
Dim spalte As Integer
Dim laenge As Integer
Dim suchtext As String
Dim letzte_zeile As Integer
Dim letzte_spalte As Integer
zeile = ActiveCell.Row
spalte = ActiveCell.Column
' Update des Fenster ausschalten
Application.ScreenUpdating = False
' Listbox leeren
frmsuchtext.lsterg.Clear
' Letzte Zeile ermitteln
letzte_spalte = ActiveSheet.UsedRange.Columns.Count
letzte_zeile = ActiveSheet.UsedRange.Rows.Count
Cells(2, 1).Activate
' Länge des zu suchenden Strings ermitteln
laenge = Len(txtsuchtext.Text)
If laenge = 0 Then
MsgBox "Sie müssen einen Suchtext eingeben!", vbOKOnly + vbInformation, "Fehler"
' Update des Fenster einschalten
Application.ScreenUpdating = True
Exit Sub
End If
Dim i As Integer
While ActiveCell.Row  "" Then
'string_bilden
If InStr(1, UCase(such_string), UCase(txtsuchtext.Text)) > 0 Then
' Listbox füllen
suchtext = Cells(ActiveCell.Row, 2).Value & ", " & Cells(ActiveCell.Row, 3).Value
frmsuchtext.lsterg.AddItem suchtext
frmsuchtext.lsterg.List(lsterg.ListCount - 1, 1) = ActiveCell.Row
End If
End If
Cells(ActiveCell.Row + 1, 1).Activate
Wend
If lsterg.ListCount = 0 Then
MsgBox "Es gibt keine Texte zu der Eingabe:" & txtsuchtext.Text & "!", vbOKOnly +  _
vbInformation, "Fehler"
lblerg.Caption = "Suchergebnis:"
Else
lblerg.Caption = "Es wurden " & lsterg.ListCount & " Textstellen gefunden"
End If
' Gehe an die Position vor der Suche
Cells(zeile, spalte).Activate
' Update des Fenster einschalten
Application.ScreenUpdating = True
' Text im eingabefeld markieren und Focus draufsetzen
If Len(txtsuchtext.Text) > 0 Then
txtsuchtext.SelStart = 0
txtsuchtext.SelLength = Len(txtsuchtext.Text)
End If
txtsuchtext.SetFocus
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateien durchsuchen und Ergebnis in Listbox auflis
10.04.2014 18:35:10
andreas
Hallo Hajo,
danke für die Hilfe. Ist aber nicht ganz das Gesuchte.
Ich möchte den Inhalt aller Exceltabellen eines Verzeichnisses nach einen Begriff durchsuchen und die Ergebnisse (ganze Zeile der Fundstelle) in der Listbox auflisten. Im meinem Beispielcode funktioniert das nur in derselben Exceltabelle. Wie muss der Code verändert werden , um die Suche auf weitere Dateien auszuweiten. Funktioniert die Suche auch bei geschlossenen Dateien?
Gruß andreas

Anzeige
AW: Dateien durchsuchen und Ergebnis in Listbox auflis
10.04.2014 21:51:08
Tom
Hallo Hajo,
ist ne feine Sache deine Makro zum Auslesen, aber eine Frage hätte ich dennoch dazu.
Ich würde das Makro gerne so anpassen wollen, dass das Verzeichnis mit den Optionen und dem Dateityp nicht jedes Mal erneut eingegeben werden muss. Das Makro soll nur auf ein fest verbundenes Laufwerk zugreifen indem sich nur xlsm Dateien befinden. Ich möchte nur Start drücken und es soll losrattern...
Kannst Du mir sagen wie ich das mit deinem Makro angehen soll?
danke & gruß Tom

AW: Dateien durchsuchen und Ergebnis in Listbox auflis
11.04.2014 17:59:32
Hajo_Zi
Hallo Tom,
blende den Schalter zu Verzeichniswahl aus und schreibe eine festen Ordner im Code.
hier
StOrdner = GetAOrdner ' Verzeichnis auswählen
Gruß Hajo

Anzeige
AW: Dateien durchsuchen und Ergebnis in Listbox auflis
12.04.2014 07:41:27
Tom
Hallo Hajo,
danke für die Antwort. Wie blende ich den Schalter zu Verzeichniswahl aus? Das müsste der Schalter sein?
gruß Tom
Private Sub Cmd_Verzeichnis_Click()
StOrdner = "L:\"
If StOrdner = "" Then
MsgBox "Es wurde kein Ordner ausgewählt!"
Else
StTyp = "XLSM"
End If
End Sub

AW: Dateien durchsuchen und Ergebnis in Listbox auflis
12.04.2014 10:03:58
Hajo_Zi
Hallo Tom,
in VBA, in der UserForm, den SChalter auswählen und die Visible Eigenschaft auf False setzen.
Gruß Hajo

AW: Dateien durchsuchen und Ergebnis in Listbox auflis
12.04.2014 22:51:43
Tom
Hallo Hajo,
danke für die Erleuchtung, hat aber nicht ganz funktioniert. Finde den richten Schalter nicht zum ausblenden.
In meinem Beitrag "auslesen von dateien" https://www.herber.de/forum/messages/1357151.html haben ich mal umschrieben und angehängt wie das Makro aktuell komplett aussieht und arbeitet. Ich meine Du warst damals mit einem Kollegen von mir maßgeblich an der Entstehung beteiligt.
vieleicht kannst ja mal einen Blick drauf schmeißen und mir Tipps geben, wie man es schlanker machen könnte, damit es zügiger durchläuft?!
Danke
gruß Tom

Anzeige
AW: Dateien durchsuchen und Ergebnis in Listbox auflis
13.04.2014 09:58:03
Hajo_Zi
Hallo Tom,
es gibt in VBA die Eigeschaften und da visible.
meherere Dateien runterladen und ansehen das ist mir zu aufwendig. Es ging ja nur um einen Code.
Gruß Hajo

AW: Dateien durchsuchen und Ergebnis in Listbox auflis
13.04.2014 10:15:17
fcs
Hallo Andreas,
ohne Öffnen der Dateien kann man nicht auf die Daten zugreifen. Man kann es nur mehr oder weniger stark im Hintergrund machen und was möglich ist hängt auch davon ab wie einheitlich Tabelleblätter und Spaltentitel benamt sind.
Am einfachsten ist es jedoch die Dateien ohne Bildschirmaktualisierung in Excel schreibgeschützt zu öffnen, die relevanten Daten auszulesen/kopieren, und die Datei ohne zu speichern wieder zu schliessen.
Bevor hier jetzt aber irgendetwas programmiert wird wären noch ein paar Sachen zu klären:
1a. Wieviele Dateien im Verzeichnis sind zu durchsuchen?
1b. Ist das Verzeichnis fix oder muss es variabel ausgewählt werdn können?
2. Welches Tabellenblatt soll durchsucht werden? Bestimmter Blattname oder immer 1. Blatt?
3. Wieviele Datenzeilen enthalten die Tabellenblätter in etwa?
4a. Wieviele und welche Spalten mit Daten sollen in der Listbox dargestellt werden?
4b. In deiner Ausgangsfrage schreibst du, dass du nach der Auswahl in der Listbox dir die Zeile anzeigen lassen möchtest. Beutet dies, dass dann auch der Dateiname, die Zeile und ggf. auch der Tabellenname der Fundstellen irgendwo zwischengespeichert werden müssen?
5a. Müssen die Quelltabellen beim Öffnen neu berechnet werden?
5b. Enthalten die Quelltabellen externe Vernüpfungen/Links? Müssen diese aktualisiert werden?
5c. Enhalten die Quelldateien irgendwelche Ereignismakros?
6. Wie oft wird mit dem Userform nach Daten gesucht?
Wenn die Anzahl der Datenzeilen in den Dateien nicht zu hoch ist und/oder oft nach den Daten gesucht wird, dann würde ich mir an deiner Stelle per Makro alle relevanten Daten in einem Tabellenblatt der Datei mit dem Userform zusammenkopieren und dann diese Daten als Basis für die Datensuche verwenden.
Diese Liste würde dann nur bei Bedarf oder z.B. beim Öffnen der Datei aktualisiert.
Gruß
Franz
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige