VBA: Durchsuchen und Kopieren von Werten in Excel
Schritt-für-Schritt-Anleitung
Um in Excel nach bestimmten Werten zu suchen und diese zu kopieren, kannst Du ein VBA-Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung, wie Du dies umsetzen kannst:
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Klicke auf
Einfügen
und wähle Modul
, um ein neues Modul zu erstellen.
- Kopiere den folgenden VBA-Code in das Modul:
Sub Auswertung()
Dim ersterFund As String
Dim letzteZeileL As Long
Dim suchErgebnis As Object
Dim wb As Workbook
Dim wsE As Worksheet ' Eingangsblätter (nacheinander)
Dim wsL As Worksheet ' Lösungsblatt
Dim zeileE As Long
Dim zeileL As Long
Set wb = ThisWorkbook
Set wsL = wb.Worksheets("Lösung")
letzteZeileL = wsL.Cells(wsL.Rows.Count, "A").End(xlUp).Row
If letzteZeileL > 1 Then
wsL.Rows(2).Resize(letzteZeileL - 1).ClearContents
End If
zeileL = 2
For Each wsE In wb.Worksheets
If Left$(UCase$(wsE.Name), 7) = "EINGANG" Then
Set suchErgebnis = wsE.Columns("A").Find(What:="ID No.", LookAt:=xlWhole)
If Not suchErgebnis Is Nothing Then
ersterFund = suchErgebnis.Address
Do
zeileE = suchErgebnis.Row + 1
Do Until IsEmpty(wsE.Cells(zeileE, "A"))
If wsE.Cells(zeileE, "E") = "high" Or wsE.Cells(zeileE, "E") = "medium" Then
wsL.Cells(zeileL, "A") = wsE.Name
wsL.Cells(zeileL, "B") = wsE.Cells(zeileE, "A") ' Id No.
wsL.Cells(zeileL, "C") = wsE.Cells(zeileE, "B") ' Frage
wsL.Cells(zeileL, "D") = wsE.Cells(zeileE, "E") ' ?
wsL.Cells(zeileL, "E") = wsE.Cells(zeileE, "C") ' Bemerkung
zeileL = zeileL + 1
End If
zeileE = zeileE + 1
Loop
Set suchErgebnis = wsE.Columns("A").FindNext(After:=suchErgebnis)
Loop While Not suchErgebnis Is Nothing And suchErgebnis.Address <> ersterFund
End If
End If
Next wsE
End Sub
- Schließe den VBA-Editor und gehe zurück zu Excel.
- Erstelle einen Button im Arbeitsblatt „Lösung“, um das Makro zu starten. Klicke dazu auf „Entwicklertools“ -> „Einfügen“ -> „Button“.
- Weise dem Button das Makro
Auswertung
zu.
Jetzt kannst Du das Makro ausführen, um die gewünschten Werte zu durchsuchen und zu kopieren.
Häufige Fehler und Lösungen
Alternative Methoden
Wenn Du nicht mit VBA arbeiten möchtest, kannst Du auch Excel-Formeln verwenden, um die Werte zu suchen und zu kopieren. Eine Kombination aus WVERWEIS
und FILTER
kann hier hilfreich sein. Das ist allerdings weniger flexibel und erfordert manuelle Anpassungen.
Praktische Beispiele
Ein Beispiel für das Kopieren von Daten aus mehreren Tabellen:
- Du hast mehrere Blätter (Eingang1, Eingang2, …) und möchtest die Werte in einem neuen Blatt namens „Lösung“ konsolidieren.
- Verwende die oben genannte VBA-Methode, um die gewünschten Werte in die „Lösung“ zu übertragen.
Wenn Du die Blattnamen änderst, z.B. in „Regional“ oder „Technical“, musst Du nur die Bedingungen im VBA-Code anpassen.
Tipps für Profis
- Nutze die
Debug.Print
-Funktion im Code, um den Fortschritt und die gefundenen Werte während der Ausführung des Makros zu überwachen.
- Halte Deine Arbeitsmappe gut organisiert, insbesondere wenn Du viele Eingangsblätter hast. Das erleichtert die Verwaltung und das Suchen nach Werten.
FAQ: Häufige Fragen
1. Frage
Kann ich das Makro anpassen, um andere Spalten zu durchsuchen?
Ja, Du musst lediglich die Spaltenbezeichnung im Code anpassen, zum Beispiel von "E" auf "P".
2. Frage
Wo kann ich mehr über VBA lernen?
Eine gute Anlaufstelle ist die vhs herne kurssuche, wo Du Kurse zur VBA-Programmierung finden kannst.