Werte per VBA suchen und kopieren in Excel
Schritt-für-Schritt-Anleitung
Um Daten von einem Tabellenblatt in ein anderes zu kopieren, benötigst du ein VBA-Makro. Folge diesen Schritten:
-
Öffne den VBA-Editor:
- Drücke
ALT + F11
in Excel.
-
Füge ein neues Modul hinzu:
- Klicke mit der rechten Maustaste auf "VBAProject (DeineDateiName)" und wähle
Einfügen > Modul
.
-
Kopiere den folgenden Code in das Modul:
Sub WerteKopieren()
Dim ws1 As Worksheet, ws2 As Worksheet
Dim kw As String
Dim letzteZeile As Long, i As Long, zielZeile As Long
Set ws1 = ThisWorkbook.Worksheets("Liste1")
Set ws2 = ThisWorkbook.Worksheets("Liste2")
kw = InputBox("Bitte die gewünschte KW eintragen")
letzteZeile = ws1.Cells(ws1.Rows.Count, "F").End(xlUp).Row
zielZeile = 3 ' Start in Liste2 bei Zeile 3
For i = 1 To letzteZeile
If ws1.Cells(i, "F").Value = kw And ws1.Cells(i, "A").Value = "" Then
ws2.Cells(zielZeile, "E").Value = ws1.Cells(i, "B").Value
ws2.Cells(zielZeile, "A").Value = ws1.Cells(i, "C").Value
ws2.Cells(zielZeile, "B").Value = ws1.Cells(i, "D").Value
ws2.Cells(zielZeile, "C").Value = ws1.Cells(i, "E").Value
zielZeile = zielZeile + 1
End If
Next i
End Sub
-
Führe das Makro aus:
- Gehe zurück zu Excel, drücke
ALT + F8
, wähle WerteKopieren
und klicke auf Ausführen
.
Häufige Fehler und Lösungen
Alternative Methoden
Falls du kein VBA verwenden möchtest, kannst du auch die folgende Methode nutzen:
-
Verwende SVERWEIS:
- Mit der Funktion
SVERWEIS
kannst du Werte aus Liste1
in Liste2
suchen und kopieren, jedoch ist diese Methode weniger flexibel bei komplexen Anforderungen.
-
Kopieren und Einfügen:
- Du kannst die Daten auch manuell kopieren und einfügen, wobei du darauf achten musst, die richtigen Spalten und Zeilen zu wählen.
Praktische Beispiele
Wenn du die KW 46 aus Liste1
suchst:
- In
Liste1
stehen in Spalte F die Kalenderwochen.
- In den Spalten B, C, D und E befinden sich die Werte, die du in
Liste2
übertragen möchtest.
- Stelle sicher, dass die Zellen in Spalte A leer sind, bevor du das Makro ausführst.
Tipps für Profis
-
Debugging: Nutze die Debug.Print
-Anweisung im Code, um Zwischenergebnisse zu überprüfen, während das Makro ausgeführt wird.
-
Fehlerbehandlung: Implementiere On Error Resume Next
und On Error GoTo 0
, um Fehler im Makro elegant zu handhaben.
-
Speichere deine Arbeit: Bevor du das Makro ausführst, speichere deine Datei, um Datenverlust zu vermeiden.
FAQ: Häufige Fragen
1. Muss ich etwas an den Spalten ändern?
Ja, die Spalten B, C, D, und E in Liste1
müssen die entsprechenden Werte enthalten, die du in Liste2
übertragen möchtest.
2. Kann ich das Makro für mehrere Kalenderwochen gleichzeitig verwenden?
Das aktuelle Makro ist auf eine KW ausgelegt. Du müsstest den Code anpassen, um mehrere KWs zu verarbeiten.
3. Was mache ich, wenn das Makro nicht funktioniert?
Überprüfe den Code auf Schreibfehler, insbesondere bei den Blattnamen und Spaltenbezügen. Stelle sicher, dass die Blätter existieren und die Daten korrekt angeordnet sind.