Werte aus anderem Tabellenblatt suchen und übernehmen
Schritt-für-Schritt-Anleitung
Um einen Wert aus einem anderen Tabellenblatt in Excel zu suchen und zu übernehmen, kannst Du das folgende VBA-Makro verwenden. Dieses Beispiel zeigt, wie Du eine Artikelnummer in "Tabelle2" suchst und das Ergebnis zurückgibst.
-
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu öffnen.
-
Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject" > Einfügen > Modul.
-
Kopiere folgenden Code in das Modul:
Private Sub CommandButton1_Click()
Dim rngFind As Range
Dim strTitel As String
strTitel = InputBox("Artikel-Nr.:", "Artikel-Nr. eingeben", , 5, 5)
With Worksheets("Tabelle2")
Set rngFind = .Columns("B").Find(strTitel, LookIn:=xlFormulas)
If Not rngFind Is Nothing Then
MsgBox "Es wurde gefunden in Zeile " & rngFind.Row
Else
MsgBox "Es wurde nichts gefunden"
End If
End With
End Sub
-
Schließe den VBA-Editor und gehe zurück zu Excel.
-
Füge einen Button hinzu und verlinke ihn mit dem Makro.
Du kannst nun die Artikelnummer eingeben und das Makro wird den Wert in "Tabelle2" suchen.
Häufige Fehler und Lösungen
-
Fehler: "Es wurde nichts gefunden"
Lösung: Stelle sicher, dass die Artikelnummer genau so eingegeben wird, wie sie in "Tabelle2" steht. Achte auf Groß- und Kleinschreibung sowie Leerzeichen.
-
Fehler: Das Makro läuft nicht
Lösung: Überprüfe, ob der Tabellenblattname korrekt ist. In diesem Fall sollte es "Tabelle2" sein. Wenn Du einen anderen Namen verwendest, ändere den Code entsprechend.
-
Syntaxfehler im Code
Lösung: Achte darauf, dass Du den Code genau kopierst. Ein fehlendes Zeichen oder ein falsches Zeichen kann zu einem Fehler führen.
Alternative Methoden
Neben dem VBA-Ansatz kannst Du auch die integrierte Excel-Funktion SVERWEIS verwenden, um Werte aus einem anderen Tabellenblatt zu suchen. Hier ist ein Beispiel:
=SVERWEIS(A1; Tabelle2!B:C; 2; FALSCH)
In diesem Beispiel wird in "Tabelle2" nach dem Wert in Zelle A1 gesucht, und der entsprechende Wert aus der zweiten Spalte (C) wird zurückgegeben.
Praktische Beispiele
-
Beispiel 1: Suche nach einem Artikelwert und übernehme die Beschreibung aus "Tabelle2".
Dim rngFind As Range
Set rngFind = Worksheets("Tabelle2").Columns("B").Find("Artikel123")
If Not rngFind Is Nothing Then
MsgBox "Beschreibung: " & rngFind.Offset(0, 1).Value
End If
-
Beispiel 2: Suche und übernehme einen Preis aus "Tabelle2".
Dim rngFind As Range
Set rngFind = Worksheets("Tabelle2").Columns("B").Find("Artikel456")
If Not rngFind Is Nothing Then
MsgBox "Preis: " & rngFind.Offset(0, 2).Value
End If
Tipps für Profis
- Verwende Fehlerbehandlungsroutinen in Deinem Code, um unerwartete Fehler abzufangen.
- Optimiere Deinen Code, indem Du
Select
und Activate
vermeidest, um die Ausführungsgeschwindigkeit zu erhöhen.
- Teste den Code immer in einer Kopie Deiner Arbeitsmappe, um unerwünschte Änderungen zu vermeiden.
FAQ: Häufige Fragen
1. Wie kann ich den Code anpassen, um in anderen Spalten zu suchen?
Du kannst die Columns("B")
-Angabe im Code ändern, um eine andere Spalte zu durchsuchen. Zum Beispiel Columns("A")
für die Spalte A.
2. Funktioniert dieses Makro in allen Excel-Versionen?
Ja, das Makro sollte in allen modernen Excel-Versionen (Excel 2010 und neuer) funktionieren, die VBA unterstützen.
3. Kann ich das Makro auch für mehrere Tabellenblätter verwenden?
Ja, Du kannst den Code anpassen, um durch verschiedene Tabellenblätter zu iterieren, indem Du eine Schleife einfügst.