Zellkoordinaten in Excel ermitteln
Schritt-für-Schritt-Anleitung
Um die Zellkoordinaten für ein bestimmtes Element in Excel zu ermitteln und den Wert in eine andere Zelle einzutragen, kannst Du die folgenden Schritte ausführen:
- Öffne den VBA-Editor: Drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Erstelle ein neues Modul: Rechtsklicke im Projekt-Explorer auf dein Arbeitsblatt und wähle
Einfügen > Modul
.
- Füge den folgenden Code ein:
Sub EintragVornehmen()
Dim ArtZeile As Long
Dim BelSpalte As Long
Dim Suche As String
Suche = "Butter" ' Hier den gesuchten Artikel eintragen
ArtZeile = Worksheets("Bsp").Columns(1).Find(What:=Suche, LookAt:=xlWhole).Row
BelSpalte = Worksheets("Bsp").Rows(1).Find(What:="Beleg 3", LookAt:=xlWhole).Column
Worksheets("Bsp").Cells(ArtZeile, BelSpalte).Value = 2 ' Wert eintragen
End Sub
- Führe das Makro aus: Du kannst das Makro ausführen, um den Wert in die entsprechende Zelle einzutragen.
Häufige Fehler und Lösungen
-
Laufzeitfehler '91': Dieser Fehler tritt auf, wenn das gesuchte Element nicht gefunden wird. Stelle sicher, dass der Suchbegriff korrekt ist.
-
Objekt erforderlich: Achte darauf, dass Du die Variablen korrekt deklariert hast. Ein Beispiel wäre:
Dim Suche As String
Suche = "Beleg3"
Wenn "Suche" nicht zugeordnet wurde, wird dieser Fehler angezeigt.
- Fehler bei der Verwendung von Match: Wenn Du die Match-Funktion verwendest, stelle sicher, dass die gesuchte Zeile und Spalte existieren. Füge eine Fehlerbehandlung hinzu, um dies zu prüfen.
Alternative Methoden
Ein alternativer Ansatz könnte die Verwendung von Application.Match
sein. Hier ein Beispiel:
Sub AlternativeSuche()
Dim sZeile As Variant
Dim sSpalte As Variant
Dim Suche As String
Suche = "Beleg3"
sSpalte = Application.Match(Suche, Sheets("Buchungen").Rows(3), 0)
If IsError(sSpalte) Then
MsgBox "Beleg nicht gefunden."
Else
MsgBox "Beleg gefunden in Spalte: " & sSpalte
End If
End Sub
Praktische Beispiele
Hier sind einige praktische Beispiele, die Dir helfen, die Logik besser zu verstehen:
-
Eintrag für Artikel Wurst:
ArtZeile = Worksheets("Bsp").Columns(1).Find("Wurst").Row
BelSpalte = Worksheets("Bsp").Rows(1).Find("Beleg 1").Column
Worksheets("Bsp").Cells(ArtZeile, BelSpalte).Value = 15
-
Eintrag für Artikel Brot:
ArtZeile = Worksheets("Bsp").Columns(1).Find("Brot").Row
BelSpalte = Worksheets("Bsp").Rows(1).Find("Beleg 2").Column
Worksheets("Bsp").Cells(ArtZeile, BelSpalte).Value = 12
Tipps für Profis
- Verwende
With
-Anweisungen: Dies kann Deinen Code sauberer und leichter lesbar machen.
With Worksheets("Bsp")
.Cells(ArtZeile, BelSpalte).Value = 2
End With
-
Fehlerbehandlung einbauen: Nutze On Error GoTo
, um Fehler abzufangen und entsprechend zu reagieren.
-
Variablen sinnvoll benennen: Eine klare Benennung hilft, den Code verständlicher zu machen.
FAQ: Häufige Fragen
1. Wie finde ich die Zeile eines Artikels?
Verwende die Find
-Methode, um die Zeile des gesuchten Artikels zu ermitteln, wie im Beispiel gezeigt.
2. Was mache ich, wenn mein Suchbegriff nicht gefunden wird?
Implementiere eine Fehlerbehandlung, um eine klare Rückmeldung zu bekommen, wenn der Begriff nicht gefunden wird.
3. Kann ich die Suche auch auf ein anderes Arbeitsblatt ausführen?
Ja, Du kannst die Sheets("Name")
-Anweisung verwenden, um auf ein bestimmtes Arbeitsblatt zuzugreifen.
4. Was ist der Unterschied zwischen Find
und Match
?
Find
sucht nach einem bestimmten Wert in einem Bereich und gibt die Zelle zurück, während Match
die Position eines Wertes in einem Array zurückgibt.