Hallo zusammmen,
es ist ein paar Jahre her das ich mal was mit VBA gemacht hab. Dementsprechend sind auch meine Kenntisse leider sehr eingestaubt.
Ich möchte einen definierten Bereich in einer Tabelle nach einem Wert durchsuchen und bei Übereinstimmung den Wert der direkten rechten Nachbarzelle in eine Variable füllen.
Mein Code sieht wie folgt aus:
Public Function zuordnung()
Dim winuser As String
Dim suche As Range
Dim zielwert As String
winuser = CreateObject(„WScript.Network“).UserName
MsgBox winuser , vbOKOnly, „User“
For Each suche In Range(„A1:A4“)
If suche = winuser Then
zielwert = ActiveCell.Offset(0, 1).Value
MsgBox zielwert , vbOKOnly, „Geschafft“
Exit For
Else: GoTo Weiter
End If
Weiter:
Next suche
End Function
Das ganze funktioniert zwar - aber nicht richtig. Wenn der Treffer in der ersten oder zweiten Zeile ist erscheint auch der richtige Wert in der 2ten MsgBox. Ist der Wert in Zeile 3 oder 4 geht es nicht.
Aber warum? Rein von der Logik her müstte es doch stimmen…