Suchen in bestimmten Zellen von mehreren Excel-Dateien
Schritt-für-Schritt-Anleitung
Um in mehreren Excel-Dateien nach bestimmten Inhalten zu suchen, kannst Du folgenden VBA-Code verwenden. Dieser Code ermöglicht es, in Zelle A1 der Arbeitsmappe „Arbeitskarte“ zu suchen.
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu starten.
- Klicke auf
Einfügen
und wähle Modul
, um ein neues Modul zu erstellen.
- Füge den folgenden Code in das Modul ein:
Option Explicit
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" ( _
ByVal pidl As Long, _
ByVal pszPath As String) As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" ( _
lpBrowseInfo As BROWSEINFO) As Long
Function OrdnerAuswahl() As String
Dim bInfo As BROWSEINFO
Dim strPath As String
Dim lngR As Long
Dim lngX As Long
Dim intPos As Integer
bInfo.pidlRoot = 0
bInfo.lpszTitle = "Wählen Sie bitte einen Ordner aus"
bInfo.ulFlags = &H1
lngX = SHBrowseForFolder(bInfo)
strPath = Space$(512)
lngR = SHGetPathFromIDList(ByVal lngX, ByVal strPath)
If lngR Then
intPos = InStr(strPath, Chr$(0))
OrdnerAuswahl = Left(strPath, intPos - 1)
Else
OrdnerAuswahl = ""
End If
End Function
Sub OrdnerLesen()
Dim fso As Object
Dim fVerz As Object
Dim fDatei As Object
Dim fDateien As Object
Dim sPfad As String
Dim sSuche As String
Dim sMappe As String
Dim I As Integer
On Error GoTo ErrHandler
sSuche = InputBox("Bitte geben Sie den zu suchenden Begriff ein: ", "Suchbegriff")
If sSuche = "" Then
MsgBox "Sie haben keinen Suchbegriff eingegeben!"
Exit Sub
End If
sPfad = OrdnerAuswahl & "\"
Set fso = CreateObject("Scripting.FileSystemObject")
Set fVerz = fso.GetFolder(sPfad)
Set fDateien = fVerz.Files
I = 10
With ActiveSheet
Do Until .Cells(I, 1).Value = ""
.Cells(I, 1).ClearContents
I = I + 1
Loop
End With
For Each fDatei In fDateien
Workbooks.Open Filename:=fDatei
sMappe = ActiveWorkbook.FullName
If InStr(ActiveWorkbook.Sheets("Arbeitskarte").Range("A1"), sSuche) > 0 Then
With ActiveSheet
.Range("A10").Select
Selection.EntireRow.Insert
ActiveCell.Value = sMappe
End With
End If
ActiveWorkbook.Close SaveChanges:=False
Next fDatei
Exit Sub
ErrHandler:
MsgBox "Es trat folgender Fehler auf: " & Err.Number & vbLf & Err.Description
End Sub
- Schließe den VBA-Editor und kehre zu Excel zurück.
- Führe das Makro aus, um in den ausgewählten Dateien zu suchen.
Häufige Fehler und Lösungen
-
Fehler: „Sie haben keinen Suchbegriff eingegeben!“
- Lösung: Stelle sicher, dass Du einen Suchbegriff eingibst, bevor Du das Makro ausführst.
-
Fehler: „Es trat folgender Fehler auf: [Fehlernummer]“
- Lösung: Überprüfe, ob der Ordner mit den Excel-Dateien existiert und die Dateien nicht beschädigt sind.
-
Die Dateien werden nicht geschlossen.
- Lösung: Stelle sicher, dass die
Close
-Anweisung korrekt implementiert ist, um alle geöffneten Dateien zu schließen.
Alternative Methoden
Wenn Du Excel-Dateien durchsuchen möchtest, ohne sie zu öffnen, kannst Du Tools wie Power Query verwenden, um Daten aus mehreren Excel-Dateien in einem Schritt zu importieren und zu analysieren.
Eine andere Möglichkeit ist die Verwendung von Skripten in Python oder PowerShell, um Daten in Excel-Dateien zu durchsuchen, ohne sie manuell zu öffnen.
Praktische Beispiele
- Beispiel 1: Suche nach dem Begriff „latein dies 3 buchstaben“ in Zelle A1 aller Dateien im Ordner „ARCHIV“.
- Beispiel 2: Du kannst den Code anpassen, um auch in anderen Zellen zu suchen, z.B. Zelle L8, indem Du die entsprechende Zellreferenz im Code änderst.
Tipps für Profis
- Verwende
Application.ScreenUpdating = False
, um die Bildschirmaktualisierung während des Suchvorgangs zu deaktivieren. Dadurch wird die Ausführung des Codes schneller und es wird weniger Ablenkung durch die geöffneten Fenster geben.
- Integriere eine Benutzeroberfläche für die Eingabe von Suchbegriffen, um den Prozess benutzerfreundlicher zu gestalten.
- Füge eine Funktion hinzu, die die Anzahl der Treffer pro Datei zählt und diese Information zurückgibt.
FAQ: Häufige Fragen
1. Wie kann ich in mehreren Excel-Dateien nach Inhalt suchen?
Du kannst dies mit VBA tun, wie im obigen Beispiel gezeigt, indem Du ein Makro schreibst, das durch alle Dateien in einem Ordner iteriert.
2. Gibt es eine Möglichkeit, Excel-Dateien zu durchsuchen, ohne sie zu öffnen?
Ja, Du kannst Power Query oder spezielle Skripte verwenden, um Daten zu extrahieren, ohne die Dateien zu öffnen.
3. Kann ich auch nach mehreren Suchbegriffen suchen?
Ja, Du kannst den VBA-Code anpassen, um mehrere Eingabefelder für Suchbegriffe zu integrieren und die Ergebnisse entsprechend zu filtern.