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
Inhaltsverzeichnis

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

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
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

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige