Mein Ziel:
Ich moechte erreichen, dass Excel
- nach einem manuellen Eintrag eines Suchbegriffes in eine Inputbox (z.B. "Silbernitrat"),
- in einem einzigen bestimmten Ordner ( "\\192.168...\HakC\exceldateien" )
- den Inhalt aller *.xls Dateien nach dem anfangs eingetragenem Begriff (hier: "Silbernitrat") durchsucht
- und dann die gefundenen Dateien in einer Liste darstellt
( - optimal waere es wenn man diese dann sogar aus der Liste oeffnen koennte, jedoch weiss ich nicht, ob das ueberhaupt moeglich ist)
Mein Problem:
1. Leider habe ich nur wenig (fast keine) Ahnung von Visual Basic
2. Deshalb habe ich im Internet stundenlang gesurft, um dort Loesungen zu finden
- habe auch einen (meiner Meinung nach guten) Loesungsansatz gefunden
- kann diesen aber (aufgrund mangelnden Fachwissens) nicht auf meine Wuensche optimieren
Bisher ist es mit dem im Internet gefundenen Programm moeglich:
1. einen Suchwert einzugeben
2. den Inhalt der *.xls Dateien nach diesem Suchbegriff zu durchsuchen
3. das alles in einem von mir definierten Ordner
JEDOCH glingt das mit der Liste (welche die Dateinamen der Treffer der Suche enthaelt) NICHT
und meine Datei (aus der ich das Makro starte) oeffnet sich (aus mir unerklaerlichen Gruenden) nach jeder Suche neu, sodass vorher eingetragene Werte verloren gehen.
Es waere echt GENIAL, wenn einer von euch mein Programm verbessern, oder mich auf die Fehler in diesem aufmerksam machen koennte. Das wuerde mich vor einer Verzweiflung bewahren... ;-)
VIELEN HERZLICHEN DANK IM VORAUS!!!
Chris
Hier nun das bisherige Programm:
Sub dateien_durchsuchen_Click()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
On Error Resume Next
wort = InputBox("Suchwort")
Set fs = Application.FileSearch
With fs
.LookIn = "\\192.168...\HakC\exceldateien"
.Filename = "*.xls"
.Execute
For i = 1 To .FoundFiles.Count
Workbooks.Open .FoundFiles(i)
erg = Cells.Find(What:=wort, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
.Activate
If erg Then MsgBox wort & " gefunden in " & .FoundFiles(i)
Workbooks(Mid(.FoundFiles(i), InStrRev(.FoundFiles(i), "\") + 1)).Close SaveChanges:=False
Next i
End With
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub