Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
408to412
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
408to412
408to412
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
suche in geschlossenen dateien
tim
hallo leute
ich habe folgenden code gefunden, um daten aus einer geschlossenen datei auszulesen und in einer msgbox anzuzeigen:
Sub TestGetValue()
Dim p As String
Dim f As String
Dim s As String
Dim r As String
p = "C:\temp\"
f = "test.xls"
s = "Tabelle3"
r = "A1"
MsgBox GetValue(p, f, s, r)
End Sub

Private Function GetValue(path, file, sheet, ref)
'   Retrieves a value from a closed workbook
Dim arg As String
'   Make sure the file exists
If Right(path, 1) <> "\" Then path = path & "\"
If Dir(path & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If
'   Create the argument
arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Range("A1").Address(, , xlR1C1)
'   Execute an XLM macro
GetValue = ExecuteExcel4Macro(arg)
End Function

was muss ich nun anpassen, damit ich den wert einer inputbox in zwei verschiedenen geschlossenen dateien (test1.xls und test2.xls / je tabelle '1' und '2') suchen kann und sämtliche ergebnisse, d.h. die gesamte zeile, wo der wert vorkommt (im bereich A1 bis L500) im tabellenblatt 'suchen' der offenen datei anzeigen kann?
kann mir jemand helfen
vielen dank

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: suche in geschlossenen dateien
Nepumuk
Hallo Tim,
davon würde ich dir abraten, denn die Dateien bleiben nicht wirklich geschlossen, sondern werden nur temporär geöffnet. Da du immer nur einen Zellwert abfragen kannst, müsstse du jede der beiden Dateien 6.000 mal öffnen. Was natürlich, je nach Dateigröße, seine Zeit in Anspruch nimmt. Öffne die Dateien mit dem GetObject - Funktion, dann bleiben sie ausgeblendet und du kannst sie mit der Find - Methode in Sekundenbruchteilen durchsuchen.
Gruß
Nepumuk
AW: suche in geschlossenen dateien
tim
hi nepumuk
danke und ich denke du hast recht wegen der dauer des öffnens. leider bin ich nicht sehr vertraut mit der getobject funktion. kannst du mir vielleicht hier weiterhelfen?
ich wäre dir auch sehr verbunden wenn du mir mit der find methode helfen könntest. exisitert bereits ein entsprechender code.
ps. bei zu komplizierten codes blicke ich leider nicht mehr so ganz durch wenns ums anpassen/ändern geht.
vielen dank
Anzeige
AW: suche in geschlossenen dateien
Nepumuk
Hallo Tim,
wonach soll eigentlich in den Mappen gesucht werden? Willst du z.B. einen Wert in eine Inputbox eingeben oder ist der Suchbegriff in der Tabelle "suchen"? Soll nach einer genauen Übereinstimmung gesucht werden? Soll Groß- und Kleinschreibung berücksichtigt werden? Ab welcher Zeile sollen die gefundenen Datensätze in der Tabelle "suchen" aufgelistet werden oder sollen sie unter schon bestehenden Sätzen eingefügt werden, wenn nicht, soll ich die Tabelle vor der Ausgabe der Datensätze löschen? Wenn ja ab welcher Zeile (wg. Überschriften z.B.) ? Wie lautet der korrekte Pfad und Name zu den Dateien die durchsucht werden sollen? Oder willst du diese über ein Browserfenster jedes mal neu auswählen können?
Gruß
Nepumuk
Anzeige
AW: suche in geschlossenen dateien
tim
hallo nepumuk
folgende angaben:
pfad= C:/datenbank
dateien= test1.xls + test2.xls
sheets= 'artikel' + 'beschreibung' (je datei)
gesucht werden soll mittels eingabe in inputbox. suchkriterien= genau (oder teil der eingabe, z.B. eingabe='mode', ergebnis= mode, modehaus, modenschau usw.) aber ohne gross- kleinschreibung.
datensätze sollten in das tabellenblatt 'suchen' eingefügt werden. das blatt ist leer und sollte vor der suche ganz geleert werden.
der zu durchsuchende bereich in den dateien beider tabellenblätter ist A2:M500
hoffe du kannst damit etwas anfangen
danke und gruss
tim
Anzeige
AW: suche in geschlossenen dateien
Nepumuk
Hallo Tim,
ich bin mir nicht 100% sicher, dass es in Excel97 genau so funktioniert:

Sub suchen()
Dim intIndex As Integer, intZeile1 As Integer, intZeile2 As Integer
Dim strDateiname As String
Dim varSuchbegriff As Variant
Dim myRange As Range
Dim myWorksheet As Worksheet
varSuchbegriff = Application.InputBox("Bitte den Suchbegriff eingeben.", "Eigabe")
If varSuchbegriff = False Or Trim(varSuchbegriff) = "" Then Exit Sub
Set myWorksheet = ThisWorkbook.Worksheets("suchen")
myWorksheet.Cells.ClearContents
Application.ScreenUpdating = False
For intIndex = 1 To 2
strDateiname = "test" & Choose(intIndex, "1", "2") & ".xls"
GetObject "C:\datenbank\" & strDateiname
With Workbooks(strDateiname).Worksheets(Choose(intIndex, "artikel", "beschreibung"))
For intZeile1 = 2 To 500
Set myRange = .Range(.Cells(intZeile1, 1), .Cells(intZeile1, 13)).Find(What:=varSuchbegriff, LookIn:=xlValues, LookAt:=xlPart)
If Not myRange Is Nothing Then
intZeile2 = intZeile2 + 1
myWorksheet.Range(myWorksheet.Cells(intZeile2, 1), myWorksheet.Cells(intZeile2, 13)) = .Range(.Cells(myRange.Row, 1), .Cells(myRange.Row, 13)).Value
End If
Next
End With
Workbooks(strDateiname).Close SaveChanges:=False
Next
Set myRange = Nothing
Set myWorksheet = Nothing
Application.ScreenUpdating = True
End Sub

Gruß
Nepumuk
Anzeige
AW: suche in geschlossenen dateien
05.04.2004 18:39:06
tim
vielen herzlichen dank nepumuk
genau was ich suchte...
herzliche grüsse
tim

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige