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

suchen in geschlossenen dateien

Forumthread: suchen in geschlossenen dateien

suchen in geschlossenen dateien
07.04.2004 23: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
07.04.2004 23: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...
07.04.2004 23:59:43
Boris
...denn ob das ShowAllData mit dem GetObject funktioniert...? Ich weiss nicht so recht...
Boris
Noch offen...
08.04.2004 00:00:24
Boris
Nicht mehr offen, denn...
08.04.2004 00:09:16
K.Rola
...das funktioniert, warum auch nicht?
Gruß K.Rola
Anzeige
AW: Nicht mehr offen, denn...
08.04.2004 06:04:14
tim
vielen dank, werde es umgehend ausprobieren.
grüsse
tim
AW: Tip
08.04.2004 06: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 08: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

Forumthreads zu verwandten Themen

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige