Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
884to888
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
884to888
884to888
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
*.xls Dateien mit Makro nach Begriff durchsuchen
17.07.2007 04:00:00
Chris
Hallo zusammen!
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


18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: *.xls Dateien mit Makro nach Begriff durchsuchen
17.07.2007 07:04:00
Oberschlumpf
Moin Chris
Na, schon wieder wach? :-)
Versuch es mal mit diesem Bsp:
https://www.herber.de/bbs/user/44143.xls
Ich hab deine Frage mit Hilfe eines Buttons und einer Combobox gelöst.
Du hättest zwar gern, wenn ich dich richtig verstanden habe, eine Listbox gehabt, aber leider "spielt Excel verrückt", wenn ich anstelle der Combobox eine Listbox verwende.
Ich weiß nicht, was ich da falsch machte - aber mit Combobox funzt es.
Vor dem Testen musst du im Code noch diese Zeile anpassen:
pstrPath = "\\192.168...\HakC\exceldateien"
Konte ich helfen?
Ciao
Thorsten

Anzeige
AW: *.xls Dateien mit Makro nach Begriff durchsuchen
17.07.2007 07:17:00
haw
Hallo Chris,
hier eine Möglichkeit:

Sub dateien_durchsuchen_Click()
Dim wort$, fs As FileSearch, i%, efz%, wsA As Worksheet, wb As Workbook, ws As Worksheet,  _
erg As Range
Application.DisplayAlerts = False
Application.ScreenUpdating = False
On Error Resume Next
Application.DisplayAlerts = False
ThisWorkbook.Worksheets("Auswahl").Delete
Application.DisplayAlerts = True
ThisWorkbook.Worksheets.Add.Name = "Auswahl"
Set wsA = ActiveWorkbook.Worksheets(1)
wort = InputBox("Suchwort")
Set fs = Application.FileSearch
With fs
'        .LookIn = "\\192.168...\HakC\exceldateien"
.LookIn = "C:\Daten\Excel\1Projekte\FileTransfer_Allgemein"
.Filename = "*.xls"
.SearchSubFolders = False
.Execute
wsA.Range("A1").Value = " wurde in folgenden Dateien gefunden:"
wsA.Rows(1).Font.Bold = True
wsA.Range("B1").Value = "Dateiname"
wsA.Range("C1").Value = "1.Fundzelle"
For i = 1 To .FoundFiles.Count
Workbooks.Open .FoundFiles(i)
Set wb = ActiveWorkbook
Set ws = ActiveSheet
Set erg = Cells.Find(What:=wort, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If Not erg Is Nothing Then
efz = wsA.Cells(Rows.Count, 1).End(xlUp).Row + 1
wsA.Cells(efz, 1).Value = .FoundFiles(i)
wsA.Cells(efz, 2).Value = Dir(.FoundFiles(i))
wsA.Cells(efz, 3).Value = erg.Address
End If
wb.Close False
Next i
End With
wsA.Columns.AutoFit
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub


Gruß
Heinz

Anzeige
AW: *.xls Dateien mit Makro nach Begriff durchsuchen
17.07.2007 08:31:34
Chris
WOW!!! Ihr habt Excel und Visual Basic anscheinend echt drauf!!! ;-)
Vielen Dank, dass Ihr euch die Zeit genommen habt!
@Heinz
Ich bin total begeistert!!! Perfekte Loesung meiner Probleme!
Wuerde jetzt am liebsten das Wort "DANKE" tausend Mal hintereinander schreiben, aber ich belasse es bei einem HERZLICHEN DANK!!!
@Thorsten
Ich bin uebrigens immer noch wach... ;-)
Ich sitze gerade in Japan an meinem Arbeitsplatz und darf noch zwei Stunden arbeiten (haben hier 15.30).

AW: Doch noch kein kleines Problem
17.07.2007 08:53:56
Chris
Ein kleines Problem bleibt doch noch:
Und zwar funktioniert die Suche (von Heinz) nur, wenn die Datei, von der ich die Suche starte, sich nicht innerhalb des zu durchsuchenden Ordners befindet, da die Datei sich selbst oeffnet und somit alle gefundenen Informationen wieder verloren gehen.
Eine Moeglichkeit dies zu verhindern waere, wenn ich (bzw. einer von Euch ;-) dem Suchprogramm mitteile, dass es alle *.xls Dateien durchsuchen soll AUSSER die momentan geoeffnete.
Ist das moeglich eine solche Einschraenkung hinzuzufuegen und wenn ja, wie?
Oder gibt es eine andere Loesung das Problem zu umgehen?
Vielen Dank im voraus!
Chris

Anzeige
AW: Doch noch kein kleines Problem
17.07.2007 09:06:00
Oberschlumpf
Hi Chris
Tausch deine vorhandene, vollständige For/Next-Schleife gegen diese hier aus:

For i = 1 To .FoundFiles.Count
If Dir(.FoundFiles(i))  ThisWorkbook.Name Then
Workbooks.Open .FoundFiles(i)
Set wb = ActiveWorkbook
Set ws = ActiveSheet
Set erg = Cells.Find(What:=wort, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If Not erg Is Nothing Then
efz = wsA.Cells(Rows.Count, 1).End(xlUp).Row + 1
wsA.Cells(efz, 1).Value = .FoundFiles(i)
wsA.Cells(efz, 2).Value = Dir(.FoundFiles(i))
wsA.Cells(efz, 3).Value = erg.Address
End If
wb.Close False
End If
Next i


Hinzugefügt habe ich die Zeile mit ThisWorkbook.Name
Bei mir funzt es nun auch, wenn die DAtei im Suchverzeichnis gespeichert ist.
Funzt es auch bei dir?
Ciao
Thorsten

Anzeige
AW: Doch noch kein kleines Problem
17.07.2007 09:30:30
Chris
Hi Thorsten!
Faszinierend, wie schnell du mit den Antworten bist!
Jetzt funktioniert es auch bei mir! Echt genial!
Nochmals VIELEN VIELEN DANK!!!
Haette nun noch eine allerletzte Frage (ist mir schon unangenehm, wie unbeholfen ich bin, aber ich habe
leider wie gesagt echt viel zu wenig Ahnung von VBA):
Und zwar handelt es sich bei den Dateien, welche durchsucht werden sollen, ausschliesslich um Excelsheets, welche Links zu einer Datenbank enthalten.
Folglich fragt Excel mich beim Durchfuehren der Suche bei jeder Datei, welche durchsucht wird (das koennen bis zu 200 Stueck werden), ob ich diese Updaten will.
Ist es moeglich in dem Suchprogramm einzuarbeiten, dass Excel diese Frage jedes Mal automatisch mit ja beantwortet (ohne dass ich selber jedes mal "Update" druecken muss)?
Das wuerde mir das Excelleben deutlich erleichtern.
Und auf ein letztes Mal...
VIELEN DANK IM VORAUS!
Chris

Anzeige
AW: Doch noch kein kleines Problem
17.07.2007 09:55:00
Oberschlumpf
Hi Chris
Obs hilft, weuiss ich nicht, da ich keine Links zu Datenbanken habe und somit testen kann.
Aber versuch mal das hier:
1. Suche im Code nach diesen Zeilen
ThisWorkbook.Worksheets("Auswahl").Delete
Application.DisplayAlerts = True
2. Lösch im Code die untere Zeile
Fertig - wenns funzt :-)
Ciao
Thorsten

AW: Doch noch kein kleines Problem
17.07.2007 10:16:12
Chris
mmhh.... klappt leider nicht!
Ich hab's auch mit "Application.DisplayAlerts = false"
probiert, aber das aendert leider nichts. Aber was soll's...
Habe noch eine Woche Zeit, um das rauszufinden!
Du hast mir definitiv schon genug geholfen (und einige Tage Arbeit erspart)! ;-)
Natuerlich wieder VIELEN HERZLICHEN DANK fuer die Bemuehungen!
MfG
Chris

Anzeige
AW: Doch noch kein kleines Problem
17.07.2007 11:11:00
haw
Hallo Chris,
das wird mit einer Excel-Einstellung festgelegt, d.h. es gilt für alle Dateien:
Extras/Optionen/Bearbeiten: Aktualisieren von automatischen Verknüpfungen bestätigen
Hier den Haken entfernen, dann wirst du nicht mehr gefragt, es wird automatisch aktualisiert.
Oder du fügst die Zeile
Application.AskToUpdateLinks = False
in das Makro ein
und am Ende diese:
Application.AskToUpdateLinks = True
das hat dieselbe Auswirkung, als ob du dieselbe Einstellung manuell änderst.
(das hat mir übrigens der Markorecorder geflüstert)
Gruß
Heinz

Anzeige
AW: Doch noch kein grosses Problem
18.07.2007 03:01:00
Chris
Hallo Heinz (und alle anderen)!
Das mit der Updateabfrage hat wunderbar geklappt --> VIELEN VIELEN DANK!!!
Eigentlich waere mein Programm jetzt auch fertig gewesen, aber wie das so ist habe ich direkt ein naechstes Problem gefunden, welches allerdings gravierend ist, da deswegen mein Programm nicht wirklich funktionsfaehig ist...
Folgendes Problem:
Das von euch verbesserte Programm macht eingentlich alles was ich will, allerdings funktioniert die Suche nicht richtig! Wenn ich als Suchbegriff "Produkt 1" eingebe, sehe ich, wie er alle Dateien meines Zielordners oeffnet (was zeigt, dass diese durchsucht werden), allerdings tauchen in der Fundliste (die Liste mit den gefundenen Dateien) alle Dateien des Ordners auf, also auch wenn sie den Begriff "Produkt 1" gar nicht beinhalten!
Als Fundstelle gibt Excel auch jedes mal die selbe Zelle an (das Wort "Produkt" steht auch jedes Mal in der selben Zelle, allerdings mit anderen Zahlen dahinter).
Das Wort "Produkt" kommt jeder Datei vor, allerdings will ich nicht, dass Excel mir Dateien, in denen "Produkt 2" steht, ausgibt (schliesslich Suche ich ja nach "Produkt 1").
Suche ich nun nach dem Begriff "Produkt 2", findet Excel keine einzige Datei, obwohl es welche gibt, welche diesen Namen in einer Zelle stehen haben.
Zusammengefasst:
Entweder es werden falsche Dateien gefunden, die den Suchbegriff nicht enthalten, oder es werden gar keine Dateien gefunden, obwohl garantiert welche den gewuenschten Begriff enthalten.
Gibt es dafuer eine logische Erklaerung?
Kann man das aendern?
Wenn ich die Suche auf eine Spalte reduziere (also dass Excel immer nur eine Spalte durchsucht und nicht die ganze Datei), haette das evtl. einen Einfluss auf das Ergebnis?
Wuerde mich sehr ueber Anregungen freuen! Vielen Dank
MfG
Chris
Hier der aktuelle Code:

Sub dateien_durchsuchen_Click()
Dim wort$, fs As FileSearch, i%, efz%, wsA As Worksheet, wb As Workbook, ws As Worksheet, _
erg As Range
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Application.AskToUpdateLinks = False
On Error Resume Next
Application.DisplayAlerts = False
ThisWorkbook.Worksheets("Auswahl").Delete
Application.DisplayAlerts = True
ThisWorkbook.Worksheets.Add.Name = "Auswahl"
Set wsA = ActiveWorkbook.Worksheets(1)
wort = InputBox("Suchwort")
If wort = "" Then Exit Sub
Set fs = Application.FileSearch
With fs
.LookIn = "\\192.168.5....\HakC\exceldateien"
.Filename = "*.xls"
.SearchSubFolders = False
.Execute
wsA.Range("A1").Value = " wurde in folgenden Dateien gefunden:"
wsA.Rows(1).Font.Bold = True
wsA.Range("B1").Value = "Dateiname"
wsA.Range("C1").Value = "1.Fundzelle"
For i = 1 To .FoundFiles.Count
If Dir(.FoundFiles(i))  ThisWorkbook.Name Then
Workbooks.Open .FoundFiles(i)
Set wb = ActiveWorkbook
Set ws = ActiveSheet
Set erg = Cells.Find(What:=wort, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If Not erg Is Nothing Then
efz = wsA.Cells(Rows.Count, 1).End(xlUp).Row + 1
wsA.Cells(efz, 1).Value = .FoundFiles(i)
wsA.Cells(efz, 2).Value = Dir(.FoundFiles(i))
wsA.Cells(efz, 3).Value = erg.Address
End If
wb.Close False
End If
Next i
End With
wsA.Columns.AutoFit
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.AskToUpdateLinks = True
End Sub


Anzeige
AW: Doch noch kein grosses Problem
18.07.2007 06:48:00
haw
Hallo Chris,
ich habe nur ein paar kleine Änderungen vorgenommen, die eigentlich nicht wirklich relevant sind.
Ansonsten kann ich deine Probleme nicht nachvollziehen.
Hilfreich ist es aus Performancegründen allerdings, wenn man den Suchbereich einschränken kann, z.B. auf eine Spalte, was allerdings keine Auswirkung hat, ob der Suchbegriff gefunden wird oder nicht.
Wenn du "Produkt 1" eingibst, dann wird auch nur "Produkt 1" gefunden und nicht "Produkt 2", Produkt 3" usw.
Der Befehl in der Find-Funktion LookAt:=xlPart bewirkt, dass auch alle Zellen, die im Text den Begriff "Produkt 1" enthalten gefunden werden. Sollte wirklich nur der gesamte Zellinhalt gesucht werden, dann müsste hier LookAt:=xlWhole stehen.

Suche ich nun nach dem Begriff "Produkt 2", findet Excel keine einzige Datei, obwohl es welche gibt, welche diesen Namen in einer Zelle stehen haben.


Das kann nicht sein. Entweder hast du den Begriff anders geschrieben - z.B. mit mehr oder weniger Leerzeichen - oder er steht anders in der Zelle.
Gruß
Heinz

Anzeige
AW: Doch noch ein grosses Problem
18.07.2007 08:27:00
Chris
Hallo Heinz!
Ich glaube ich weiss jetzt, was mein Problem ist...
Und zwar ist die Spalte (es reicht tatsaechlich immer nur eine Spalte ("D") zu durchsuchen) mit Dropdown-Menues gefuellt.
Erschwerend ist dann noch, dass sich diese Dropdown-Menues auf eine andere Exceldatei beziehen, welche immer geoeffnet sein muss, da sonst die Dropdown-Menues nicht funktionieren.
Suche ich nun mit dem Suchprogramm nach einem Wort, welches sich nicht in der Dropdownliste, sondern voellig normal in einer Zelle (ohne Funktionen) in der Datei befindet, findet das Programm die richitgen Dateien (in der Fundliste sind also die korrekten Ergebnisse vermerkt).
Suche ich aber nach einem Begriff, welcher sich in der Dropdownlisten-Zelle befindet (diese Zelle ist natuerlich nicht leer, d.h. es ist z.B. "Produkt 2", "Produkt 3", etc. ausgewaehlt), dann kommen wieder keine/falsche Ergebnisse in der Fundliste raus (ausser ich suche nach dem ersten (obersten) Wert der Dropdownliste, also nach "Produkt 1").
Das heisst, dass das Suchprogramm jedes mal den ersten Wert der Dropdownliste (hier: "Produkt 1") in der Zelle findet, auch wenn in Wirklichkeit "Produkt 2", "Produkt 3", etc. ausgewaehlt sind.
Zusammengefasst:
Das Suchprogramm reduziert die Werte der Spalte "D" auf das erste Auswahlkriterium der Dropdownliste, auch wenn dieses gar nicht ausgewaehlt ist.
Vermutung:
Ich denke, das liegt entweder an der Tatsache, dass es eine Dropdownliste ist
oder, dass sich die Dropdownliste auf eine andere Datei bezieht
Loesungsidee:
Dass sich die Dropdownliste auf eine andere Datei bezieht koennte ich aendern, indem ich die Bezugsdatei (eine Datenbank, welche "Produkt 1", "Produkt 2", etc. und dazugehoerige Daten beinhaltet) auf ein neues "Sheet" innerhalb der Datei ziehe, sodass sich die Dropdownliste auf ein Blatt in der eigenen Datei bezieht.
Problem:
1. Ich weiss nicht, ob so das Problem wirklich behoben wird
2. Ich muesste in das Suchprogramm eine Einschraenkung integrieren, dass wirklich nur die Spalte "D" auf dem ersten Blatt ("Sheet 1") durchsucht wird, da sonst immer alle Dateien in der Fundliste auftauchen, da die Datenbank sich dann innerhalb der Datei befindet
3. Das ist mit meinen Kenntnissen leider nicht moeglich :-(
Haettest Du / Ihr eine Idee, wie das geht und weisst Du / Ihr, ob das wirklich das Problem mit den falschen Suchergebnissen behebt, denn wenn es einfach nur daran liegt, dass Zellen mit Dropdownlisten nicht ordentlich durchsucht werden koennen, bringt meine Loesungsidee nichts, da die Dropdownliste dann immernoch vorhanden ist (und auch sein muss!) ?
VIELEN HERZLICHEN DANK FUER DIE BEMUEHUNGEN!!!!!!!!!!!
VIELEN HERZLICHEN DANK FUER DIE BEMUEHUNGEN!!!!!!!!!!!
MfG
Chris

AW: Doch noch ein grosses Problem
18.07.2007 13:37:20
haw
Hallo Chris,
ohne ein Beispiel zu haben, ist es schwierig, das Problem zu erkennen.
Hier das Makro mit Einschränkung auf Spalte D:

Sub dateien_durchsuchen_Click()
Dim wort$, fs As FileSearch, i%, efz%
Dim wsA As Worksheet, wb As Workbook, ws As Worksheet, erg As Range
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Application.AskToUpdateLinks = False
On Error Resume Next
Application.DisplayAlerts = False
ThisWorkbook.Worksheets("Auswahl").Delete
Application.DisplayAlerts = True
ThisWorkbook.Worksheets.Add.Name = "Auswahl"
Set wsA = ActiveWorkbook.Worksheets(1)
wort = InputBox("Suchwort")
If wort = "" Then Exit Sub
Set fs = Application.FileSearch
With fs
.LookIn = "\\192.168.5....\HakC\exceldateien"
.Filename = "*.xls"
.SearchSubFolders = False
.Execute
wsA.Range("A1").Value = " wurde in folgenden Dateien gefunden:"
wsA.Rows(1).Font.Bold = True
wsA.Range("B1").Value = "Dateiname"
wsA.Range("C1").Value = "1.Fundzelle"
For i = 1 To .FoundFiles.Count
If Dir(.FoundFiles(i))  ThisWorkbook.Name Then
Workbooks.Open .FoundFiles(i)
Set wb = ActiveWorkbook
Set ws = ActiveSheet
Set erg = ws.Columns("D:D").Find(What:=wort, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If Not erg Is Nothing Then
efz = wsA.Cells(Rows.Count, 1).End(xlUp).Row + 1
wsA.Cells(efz, 1).Value = .FoundFiles(i)
wsA.Cells(efz, 2).Value = Dir(.FoundFiles(i))
wsA.Cells(efz, 3).Value = erg.Address
End If
wb.Close False
End If
Next i
End With
wsA.Columns.AutoFit
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.AskToUpdateLinks = True
End Sub


Gruß
Heinz

AW: Nur noch eine Verschoenerung
19.07.2007 07:11:00
Chris
Hallo Heinz!
DU BIST DER BESTE!!! :-)
Mein gravierendes Problem wurde DANK DIR beseitigt, denn die Reduzierung der Suche auf eine Spalte hat dazu gefueht, dass seit dem die Suchergebnisse perfekt sind...
Ich weiss allerdings auch nicht, wieso das Problem mit den Dropdownzellen dadurch verschwunden ist, aber das ist ein sehr erfreulicher Nebeneffekt! :-)
Ich bin dir auf jeden Fall EXTREM DANKBAR, denn ohne dich haette ich es garantiert nie hingekriegt, vor allem nicht so perfekt!
Das einzige, was jetzt noch bleibt sind zwei kleine Verschoenerungen des Programmes:
1. Wenn ich die Inputbox (in der ich den Suchwert eintrage) mit "Cancel" beende, oeffnet sich das leere Fundfenster.
Schoener waere es, wenn Excel zu dem eigentlichen "Hauptfenster" (von dem aus man auf den Knopf drueckt) zurueckkehrt und kein leeres Blatt oeffnet.
2. Der Pfad der gefundenen Exceldateien wird erst dann zu einem Link, wenn ich darauf doppelklicke (sodass ich diesen bearbeiten kann) und dann "Enter" druecke. Diese Prozedur muss ich dann bei jedem Pfad machen, damit diese zum Link werden.
Schoener waere es, wenn dies automatisch (nach der Suche) gemacht wuerde (habe ich mit dem Makrorekorder versucht, allerdings konnte ich die Daten daraus nicht in das Programm integrieren).
Das sind die Daten des Makrorekorders (habe lediglich den Doppelklick auf jede Pfad-Zelle getaetigt und jeweils die "Enter" Taste danach gedrueckt):
Range("A2").Select
ActiveCell.FormulaR1C1 = "\\192.168.5...\HakC\Exceldateien\Test 1.xls"
Range("A3").Select
ActiveCell.FormulaR1C1 = "\\192.168.5...\HakC\Exceldateien\Test 2.xls"
Range("A5").Select
ActiveCell.FormulaR1C1 = "\\192.168.5...\HakC\Exceldateien\Test 3.xls"
etc.
Es waere eine grosse Freude, wenn Du mir noch ein letztes Mal helfen koenntes!
Mal wieder...
VIELEN DANK FUER DIE BEMUEHUNGEN!!!
VIELEN HERZLICHEN DANK!!!
MfG
Chris

AW: Nur noch eine Verschoenerung
19.07.2007 12:42:00
haw
Hallo Chris,
hier deine Verschönerung, ich hoffe, es ist das, was du dir vorstellst:

Sub dateien_durchsuchen_Click()
Dim wort$, fs As FileSearch, i%, efz%
Dim wsA As Worksheet, wb As Workbook, ws As Worksheet, erg As Range
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Application.AskToUpdateLinks = False
wort = InputBox("Suchwort")
If wort = "" Then Exit Sub
On Error Resume Next
Application.DisplayAlerts = False
ThisWorkbook.Worksheets("Auswahl").Delete
Application.DisplayAlerts = True
ThisWorkbook.Worksheets.Add.Name = "Auswahl"
Set wsA = ActiveWorkbook.Worksheets(1)
Set fs = Application.FileSearch
With fs
.LookIn = "\\192.168.5....\HakC\exceldateien"
.Filename = "*.xls"
.SearchSubFolders = False
.Execute
wsA.Range("A1").Value = " wurde in folgenden Dateien gefunden:"
wsA.Rows(1).Font.Bold = True
wsA.Range("B1").Value = "Dateiname"
wsA.Range("C1").Value = "1.Fundzelle"
For i = 1 To .FoundFiles.Count
If Dir(.FoundFiles(i))  ThisWorkbook.Name Then
Workbooks.Open .FoundFiles(i)
Set wb = ActiveWorkbook
Set ws = ActiveSheet
Set erg = ws.Columns("D:D").Find(What:=wort, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If Not erg Is Nothing Then
efz = wsA.Cells(Rows.Count, 1).End(xlUp).Row + 1
wsA.Cells(efz, 1).Value = .FoundFiles(i)
ws.Hyperlinks.Add Anchor:=wsA.Cells(efz, 1), Address:=.FoundFiles(i)
wsA.Cells(efz, 2).Value = Dir(.FoundFiles(i))
wsA.Cells(efz, 3).Value = erg.Address
End If
wb.Close False
End If
Next i
End With
wsA.Columns.AutoFit
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.AskToUpdateLinks = True
End Sub


Gruß
Heinz

AW: Nur noch eine Verschoenerung
20.07.2007 08:19:08
Chris
Hallo Heinz!
TRAUMHAFT!!! Die Verschoenerungen waren sogar EXAKT das, was ich mir vorgestellt habe.
Besser haette es nicht sein koennen! Jetzt ist die Suchfunktion unverbesserlich perfekt!
Nochmas VIELEN DANK , dass Du dir meine Probleme angeschaut hast und sie jedes mal behoben hast!
Allerdings muss ich gestehen, dass mir noch eine Frage auf dem Herzen liegt, was mir wirklich schwer faellt, da ich deine Hilfsbereitschaft sehr zu schaetzen weiss und diese nicht ueberstrapazieren moechte!
Letzendlich bleibt es dir ueberlassen...
Mein Ziel:
In meinen Exceltabellen befinden sich IMMER in Zelle "G41" die Gesamtkosten eines Produkts.
Ich moechte mit einer "bedingten" Suchfunktion nun alle Dateien finden, in denen die Gesamtkosten billiger (oder gleich teuer) als der in das Inputfenster eingetragene Suchwert (z.B. "5000") sind.
Um das zu schaffen, muesste man die bisherige Suchfunktion ein wenig umwandeln...
Meine Frage:
1. Kann man die bisherige Suchfunktion auch auf eine einzige Zelle (hier: "G41") spezialisieren, sodass in allen Dateien genau diese eine Zelle durchsucht wird?
2. Ist es moeglich, dass die Suche meine Dateien unter dem Kriterium durchsucht, dass der Wert der Zelle "G41" kleiner oder gleich dem "Suchwort" (also: kleiner/gleich "5000") ist?
- Also dass alle Ergebnisse in der Fundseite in der Zelle "G41" einen kleineren oder gleichen Wert als der anfangs eingetragene "Suchwert" (momentan "Suchwort") aufweisen?
Wie immer bin ich dir in jedem Fall zutiefst zu Dank verpflichtet...
VIELEN HERZLICHEN DANK!!!!!!!
Freundliche Gruesse und schoenes Wochenende!
Chris

AW: Nur noch eine Verschoenerung
20.07.2007 10:50:00
haw
Hallo Chris,
ich bin "mit einem Fuß" schon im Wochenende.
Am Montag werde ich mir das Ganze noch mal anschauen.
Schönes Wochenende
Heinz

AW: Nur noch eine Verschoenerung
24.07.2007 01:56:00
Chris
Hallo Heinz!
Ich hatte das Glueck und durfte sogar ein langes Wochenende geniessen, sodass ich heute erst wieder arbeiten muss. Ich wollte mich noch fuer deine schnelle Antwort am Freitag bedanken!
Ausserdem wollte ich nachfragen, ob du vielleicht eine Homepage oder ein Programm kennst, welches mich mit Visual Basic (hauptsaechlich fuer Excel) vertraut macht. Ich wuerde naemlich gerne meine VBA Kenntnisse ein wenig erweitern, um wenigsten die Grundkenntnisse zu erlangen (oder sogar darueber hinaus). Mit dem Makrorekorder kommt man zwar schon relativ weit, aber die Informationen, die ich von dir erhalten habe, waren deutlich ueber dem Informationsgehalt von Makrorekordern.
Ich wuerde mich sehr freuen, wenn du mir einen Tipp geben koenntest.
Einen schoenen Arbeitstag und schoene Gruesse!
Chris

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige