| Range(adr).Show, Worksheets(i).Range("A:G").Find(myString, LookIn:=xlValues) |
| |
| |
| Const mk = "0000_Index.xls", a1 = "a1", f1 = "f1", pw = "********" | Konstanten |
| |
| Sub books_open1() | Zunächst mal die gewünschten Workbooks öffnen |
| On Error GoTo end1 | |
| DName = Application.GetOpenFilename("Excel-Dateien (*.xls),*.xls", , , , True) | Öffnet Dateien ohne Angabe des Pfades oder des |
| counter = 1 | Dateinamens |
| Application.ScreenUpdating = False | |
| If ActiveWorkbook.Name <> mk Then | Aktives Workbook von der Suche ausschließen |
| While counter <= UBound(DName) | |
| Workbooks.Open DName(counter), Password:=pw | |
| counter = counter + 1 | |
| Wend | |
| End If | |
| Workbooks(mk).Activate | |
| end1: Exit Sub | |
| End Sub | |
| |
| Sub such_stop() | Suchfunktion (stoppt auf jedem Worksheet) |
| Dim i%, b%, x%, myString$, c As Object, Treffer$, treff2$, adr$ | |
| i = 0: b = 0: x = 0 | |
| myString = Range(f1).Value | |
| myString = InputBox("Bitte Suchbegriff eingeben" & vbCrLf & vbCrLf & "Beispiele:" & vbCrLf & _ |
| " se*en findet sehen + setzen" & vbCrLf & " fun?tion findet funktion + function", , myString) |
| If myString = Empty Then Exit Sub | |
| Range(f1).Value = myString | |
| Range(f1).Value = "" | Zelle leeren, da Wert in InputBox steht |
| Application.ScreenUpdating = False | |
| For x = 1 To Workbooks.Count | Workbooks zählen |
| With Workbooks(x) | |
| For i = 1 To Sheets.Count | Worksheets zählen |
| Set c = Worksheets(i).Range("a1:g1000").Find(myString, LookIn:=xlValues) | |
| If Not c Is Nothing Then | Objekt c ist der Inhalt der Zelle |
| adr = c.Address | adr = ZellenAdresse |
| Do | |
| Application.ScreenUpdating = False | |
| ActiveWorkbook.Activate: Worksheets(i).Select | |
| Application.ScreenUpdating = True | |
| Range(adr).Show: Range(adr).Select | |
| datname = ActiveWorkbook.Name | Dateiname feststellen |
| do_it = MsgBox("Suchbegriff wurde gefunden!" & vbCrLf & "Weitersuchen?", vbYesNo, "Frage") |
| Set c = Worksheets(i).Range("a1:g1000").FindNext(c) | Objekt c für den Suchvorgang |
| Application.ScreenUpdating = False | |
| If do_it = vbYes Then | |
| b = b + 1 | Zählt Anzahl der gefundenen Strings |
| ElseIf do_it = vbNo Then | |
| If datname <> mk Then | |
| Workbooks(mk).Activate: Range(f1).Value = myString: Range(a1).Select |
| Workbooks(datname).Activate | Zurückspringen ins letzte Workbook |
| Else | |
| Range(f1).Value = myString | |
| End If | |
| Exit Sub | |
| End If | |
| Loop While c Is Nothing And c.Address <> adr | Nur ein mal pro Blatt finden! |
| End If | |
| Next i | |
| End With | |
| ActiveWindow.ActivateNext | Nächstes Workbook aktivieren |
| Next x | |
| Workbooks(mk).Activate: Range(f1).Value = myString: Range(a1).Select |
| If b = 0 Then MsgBox "Keinen Treffer " & myString & " gefunden" |
| End Sub | |
| |
| Sub Suchen() | Suchfunktion (nur Zählen der gesuchten Begriffe) |
| Dim i%, b%, x%, myString$, c As Object, Treffer$, treff2$, adr$ | |
| i = 0: b = 0: x = 0 | |
| myString = Range(f1).Value | |
| myString = InputBox("Bitte Suchbegriff eingeben" & vbCrLf & vbCrLf & "Beispiele:" & vbCrLf & _ |
| " se*en findet sehen + setzen" & vbCrLf & " fun?tion findet funktion + function", , myString) |
| If myString = Empty Then Exit Sub | |
| Range(f1).Value = myString | |
| Range(f1).Value = "" | Zelle leeren, da Wert in InputBox steht |
| Application.ScreenUpdating = False | |
| For x = 1 To Workbooks.Count | Workbooks zählen |
| With Workbooks(x) | |
| For i = 1 To Sheets.Count | Worksheets zählen |
| Set c = Worksheets(i).Range("a1:g1000").Find(myString, LookIn:=xlValues) |
| If Not c Is Nothing Then | Objekt c ist der Inhalt der Zelle |
| adr = c.Address | adr = ZellenAdresse |
| Do | |
| b = b + 1 | Zählt Anzahl der gefundenen Strings |
| Set c = Worksheets(i).Range("a1:g1000").FindNext(c) | Objekt c für den Suchvorgang |
| Loop While Not c Is Nothing And c.Address <> adr | Alle Treffer auf einem Blatt finden! |
| End If | |
| Next i | |
| End With | |
| ActiveWindow.ActivateNext | Nächstes Workbook aktivieren |
| Next x | |
| Workbooks(mk).Activate | |
| Range(f1).Value = myString | |
| If b > 0 Then | |
| treff2 = "Der Suchbegriff " & myString & " wurde " & b & " mal gefunden." |
| Treffer = MsgBox(treff2, vbOKOnly, "Info") | |
| Else | |
| MsgBox "Keinen Treffer " & myString & " gefunden" | |
| End If | |
| End Sub | |
| |