Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

suchen in geschlossenen dateien

Forumthread: suchen in geschlossenen dateien

suchen in geschlossenen dateien
08.04.2004 01:41:58
tim
hallo leute
ich habe den folgenden sehr guten code von nepumuk erhalten. er funzt genau so wie ich es mir vorgestellt habe. trotzdem habe ich noch ein problem:
mit diesem code können keine gefilterten daten gefunden werden. d.h. mit dem 'autofilter' visuell wegspedierte daten werden nicht durchsucht.
kann mir jemand helfen, damit auch diese daten durchsucht werden (anm.: dateien werden optisch nicht geöffnet und so soll es auch bleiben)
vielen dank
tim

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

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: suchen in geschlossenen dateien
08.04.2004 01:57:41
Boris
Hi,
ungetestet - sollte aber tun:
Option Explicit

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"))
On Error Resume Next
.ShowAllData
On Error GoTo 0
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

Grüße Boris
Anzeige
Lieber nochmal schnell als offen kennzeichnen...
08.04.2004 01:59:43
Boris
...denn ob das ShowAllData mit dem GetObject funktioniert...? Ich weiss nicht so recht...
Boris
Noch offen...
08.04.2004 02:00:24
Boris
Nicht mehr offen, denn...
08.04.2004 02:09:16
K.Rola
...das funktioniert, warum auch nicht?
Gruß K.Rola
Anzeige
AW: Nicht mehr offen, denn...
08.04.2004 08:04:14
tim
vielen dank, werde es umgehend ausprobieren.
grüsse
tim
AW: Tip
08.04.2004 08:20:56
Nepumuk
Hallo Boris,
die On Error - Anweisung kannst du sparen, wenn du den Filtermodus abfrägst.
If .FilterMode then .ShowAllData
Gruß
Nepumuk
AW: Tip - danke!
08.04.2004 10:57:33
Boris
Hi Nepumuk,
...ich hatte es vorher versucht mit
If .AutoFilterMode then .ShowAllData
Das funktioniert aber nur, wenn auch irgendein Filter aktiv ist. Auf Filtermode bin ich nicht gekommen - danke!
Grüße Boris
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18