Herbers Excel-Forum - das Archiv

mappen nach blatt durchsuchen

Bild

Betrifft: mappen nach blatt durchsuchen
von: andi

Geschrieben am: 13.02.2005 12:00:41
Hi,
habe gestern folgendes Makro von Boris erhalten:
Option Explicit

Sub blatt_vorhanden()
Dim Ws As Worksheet, Wb As Workbook, strWb As String
Dim bolExist As Boolean
Dim strSheet As String
strSheet = "Hallihallo" 'Der Name des gesuchten Blattes
For Each Wb In Workbooks
For Each Ws In Wb.Worksheets
If Ws.Name = strSheet Then
bolExist = True
strWb = Wb.Name
Exit For
End If
Next Ws
Next Wb
If bolExist Then
MsgBox "Blatt " & strSheet & " gefunden in " & strWb, , "Treffer..."
Else
MsgBox "Blatt " & strSheet & " nicht gefunden...", , "Fehlanzeige"
End If
End Sub

Funktioniert auch wunderbar, allerdings kommt jetzt mein Problem: Es müssen alle Mappen geöffnet sein um das Blatt zu suchen.
Habe eigentlich aus einer Mappe 3 gemacht. Die eine Mappe hatte 10 kb...
Ich wollte die Geschwindigkeit verbessern. Nun müssen ja auch alle 3 offen sein, um zu suchen. Dann hat dies ja nichts gebracht.
Gibt es eine Möglichkeit, erst die eine Mappe zu durchsuchen(also nur die Erste öffnen), bei Fund abbrechen und Blatt selektiern, sonst nächste Mappe öffnen, durchsuchen usw.
Gibt es sicher, bloss ich komme nicht drauf...
Wer kann mir helfen?
Grüße Andi
Bild

Betrifft: AW: mappen nach blatt durchsuchen
von: andre

Geschrieben am: 13.02.2005 12:14:53
Hallo Andy,
wird nur eine zeile mehr:
Sub blatt_vorhanden()
Dim Ws As Worksheet, Wb As Workbook, strWb As String
Dim bolExist As Boolean
Dim strSheet As String
strSheet = "Hallihallo" 'Der Name des gesuchten Blattes
For Each Wb In Workbooks
For Each Ws In Wb.Worksheets
If Ws.Name = strSheet Then
bolExist = True
strWb = Wb.Name
Exit For
End If
Next Ws
if bolExist = True then exit for 'hier diese Zeile
Next Wb
If bolExist Then
MsgBox "Blatt " & strSheet & " gefunden in " & strWb, , "Treffer..."
Else
MsgBox "Blatt " & strSheet & " nicht gefunden...", , "Fehlanzeige"
End If
End Sub

Bild

Betrifft: AW: mappen nach blatt durchsuchen
von: andre
Geschrieben am: 14.02.2005 05:20:31
... hab die Aufgabe nicht ganz bis zu Ende gelesen, Asche auf mein Haupt. War aber je nachdem wo das Blatt lag wenigstens etwas schneller als das Original ... Na ja, knapp daneben ist auch vorbei :-(
Grüße, Andre
Bild

Betrifft: AW: mappen nach blatt durchsuchen
von: Reinhard

Geschrieben am: 13.02.2005 18:40:18
Hi Andi,
habe das von boris angepasst.
Option Explicit
Option Base 1
Sub blatt_vorhanden()
Dim Ws As Worksheet, Wb As Workbook, strBook As Variant
Dim bolExist As Boolean, n As Integer, strWb As String
Dim strSheet As String
'strSheet = "Hallihallo" 'Der Name des gesuchten Blattes
strSheet = "HallelujasoagI" 'Der Name des gesuchten Blattes
strBook = Array("Mappe1.xls", "Mappe2.xls", "Mappe3.xls")
For n = 1 To UBound(strBook)
Workbooks.Open strBook(n)
For Each Ws In ActiveWorkbook.Worksheets
If Ws.Name = strSheet Then
bolExist = True
strWb = ActiveWorkbook.Name
GoTo Ende
End If
Next Ws
Workbooks(strBook(n)).Close
Next n
Ende:
If bolExist Then
MsgBox "Blatt " & strSheet & " gefunden in " & strWb, , "Treffer..."
'Workbooks(strBook(n)).Close
Else
MsgBox "Blatt " & strSheet & " nicht gefunden...", , "Fehlanzeige"
End If
End Sub

Gruß
Reinhad
 Bild
Excel-Beispiele zum Thema "mappen nach blatt durchsuchen"
Blätter in andere Arbeitsmappen kopieren Variablenübergabe in andere Arbeitsmappen
Bezüge auf Namen in anderen Mappen aufheben Zugriff auf geschlossene Arbeitsmappen
1000 Arbeitsblätter aus 1000 Arbeitsmappen einlesen Arbeitsmappen-History erstellen
Alle Arbeitsmappen außer einer schließen Auslesen der Arbeitsmappeneigenschaften
Geöffnete Arbeitsmappen mit Arbeitblättern listen Alle Arbeitsmappen schließen bzw. Excel beenden