ich würde gern per Makro den Inhalt der ausgewählten Zelle in der gesamten Arbeitsmappe suchen ich habe bereits per Rekorder diesen Code erstellt und etwas angepasst.
Allerdings sucht dieser nur in einem bestimmten Tabellenblatt und nicht in der gesamten Mappe.
Sub Suchen1()
'
' Suchen1 Makro
'
'
ActiveCell.Select
Selection.Copy
Cells.Find(What:=ActiveCell, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Sheets("Tabelle4").Select
Cells.FindNext(After:=ActiveCell).Activate
End Sub
Sub Suchen1()
'
' Suchen1 Makro
'
'
Dim wks As Worksheet
For Each wks In Worksheets
ActiveCell.Select
Selection.Copy
Cells.Find(What:=ActiveCell, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
'Sheets("Tabelle4").Select
Cells.FindNext(After:=ActiveCell).Activate
Next wks
End Sub
Sub SuchenTest()
'
' Suchen1 Makro
'
'
Dim wks As Worksheet
For Each wks In Worksheets
ActiveCell.Select
Selection.Copy
Cells.Find(What:=ActiveCell, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
'Sheets("Tabelle4").Select
Cells.FindNext(After:=ActiveCell).Activate
Next wks
End Sub
Hab den so eingetragen beim Auslösen des Makro Selektiert er nur die Aktive Zelle ich denke das Problem liegt an dem Befehl
Code:
'Sheets("Tabelle4").Select
Ich habe nur leider noch keine Möglichkeit gefunden das er alle Blätter gleichzeitig durchsucht. Das Problem hierbei ist ich könnte das Makro einfach immer neu von Tabelle 1 bis XY laufen lassen allerdings ändern sich gelegentlich die Tabellenblätter und damit würden die dann wieder nicht durchsucht werden.
also diese Codezeile steht nur als Kommentar im Code, da Hochkomma diesen effekt bewirkt. Kannst die Zeile auch löschen.
Ich hatte gefragt, wo du den Code denn stehen hast. Er gehört in ein Modul, dann wirkt er auch für alle Tabellen und tut das, was du möchtest..
Alle Tabellen nacheinander (nicht gleichzeitig) durchsuchen. Da der Code auf alle Tabellen wirkt ist deren Anzahl und Name unerheblich.
Ich dachte, solches Grundlagenwissen wäre vorhanden.
Das Makro war auch in einem Allgemeinen Modul, leider wie gesagt nicht mit dem Effekt wie gewünscht ich habe allerdings durch ein
Arbeitskollegen folgenden Code erhalten der genau das macht was ich mir vorgestellt habe. Zu dem Grundwissen muss ich leider sagen
das ich mich erst seit letzter Woche mit VBA beschäftigen muss um gewisse Listen und Tabellen zu erstellen.
Für Verbesserungsvorschläge hier das Makro von meinem Kollegen.
Code:
Option Explicit
Global SSearch As String
Public Sub SearchAllTables()
Dim ws As Worksheet
Dim c
Dim firstAddress As String
Dim secAddress
Dim GFound As Boolean
Dim GWeiter As Boolean
If SSearch = "" Then
End
End If
weiter:
For Each ws In Worksheets
'ws.Select
With ws.Cells
Set c = .Find(SSearch, LookIn:=xlValues, MatchCase:=False)
If Not c Is Nothing Then
GFound = True
ws.Select
c.Select
firstAddress = c.Address
Range(ActiveCell, Cells(ActiveCell.Row, Columns.Count)).Select
If MsgBox("Weitersuchen?", vbQuestion + vbYesNo) = vbYes Then
Do
Set c = .FindNext(c)
secAddress = c.Address
If c.Address = firstAddress Then
Exit Do
End If
c.Select
If MsgBox("Weitersuchen?", vbQuestion + vbYesNo) = vbNo Then
GWeiter = True
GoTo ende
End If
Loop While Not c Is Nothing And secAddress <> firstAddress And c.Address <> firstAddress
Else
GWeiter = True
GoTo ende
End If
End If
End With
Next ws
ende:
If GFound = False Then
If MsgBox("Suchwert nicht gefunden! Neue Suche?", vbInformation + vbYesNo) = vbYes Then
GoTo anf:
End If
Else
If GWeiter = False Then
If MsgBox("Es wurden alle in Frage kommenden Suchbegriffe angezeigt! Soll die Suche neu gestartet werden?", vbInformation + vbYesNo) = vbYes Then
GoTo weiter
End If
End If
End If
ohne den neuen Code im Detail geprüft zu haben: schön wenn damit deine Vorstellungen erfüllt werden.
Da mein Code ebenfalls in allen Tabellen der Datei nach dem Suchbegriff sucht und die Fundstellen markiert, probiers mal mit meiner Datei. Einfach um zu sehen, ob die bei dir auch funktioniert.
Danke für die Datei, habe diese gleich ausprobiert auch hier macht er beim aktivieren des Makros nichts weiter außer die Aktive Zelle als Kopiert zu makieren.
Was ich noch nicht erwähnt habe ich nutze Office 2010 aber ich denke das sollte hier keine rolle spielen.