Detaillierte Auswertung einer Zelle
07.07.2023 10:47:02
Jakob
Hallo Zusammen,
ich bin ziemlicher VBA Neuling und bräuchte mal ein Code Review/ eure Hilfe. Ich habe eine Spalte mit sehr viel Information pro Zelle, die ausgewertet werden muss. Ich habe verschiedene Tabellenblätter angelegt und wollte nun mit einem VBA Code die Zellinformation überprüfen, zum entsprechenden Tabellenblatt verweisen, dort einen passenden Wert nehmen und auf dem Ursprungsblatt in eine andere Spalte übertragen.
Mein Code gibt keinerlei Fehler aus, aber führt auch generell keine Aktion durch. Habe ich irgendwo etwas vergessen oder einen dummen Fehler eingebaut? Bin für jede Hilfe Dankbar!
Hier ein Beispielcode von meiner Herangehensweise:
Sub BeispielPrüfung()
Dim rng As Range
Dim cell As Range
Dim sucheA() As Variant
Dim sucheB() As Variant
Dim Inhalt As Variant
Dim ergebnisWert As Variant
Set rng = Worksheets("test").Range("D1:D10")
sucheA = Array("AA", "AB", "AC")
sucheB = Array("BA", "BB", "BC")
For Each cell In rng
Inhalt = cell.Value
If IstInA(Inhalt, sucheA) Then
ergebnisWert = detailSucheA(Inhalt)
cell.Offset(0, 1).Value = ergebnisWert
ElseIf IstInB(Inhalt, sucheB) Then
ergebnisWert = detailSucheB(Inhalt)
cell.Offset(0, 1).Value = ergebnisWert
End If
Next cell
End Sub
Function IstInA(Wert As Variant, arr As Variant) As Boolean
Dim element As Variant
For Each element In arr
If element = Wert Then
IstInA = True
Exit Function
End If
Next element
IstInA = False
End Function
Function detailSucheA(Inhalt As Variant) As Variant
If InStr(1, Inhalt, "AA-0,25") > 0 Then
FAZ = Worksheets("AA").Range("B2").Value
ElseIf InStr(1, ÜberprüfeInhalt, "AZ-1,5") > 0 Then
FAZ = Worksheets("AZ").Range("C5").Value
Exit Function
End If
End Function