Excel/VBA? Input Abfrage?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet
Public Sub sbCheckData()

Dim myInput
Dim FindData
Const myTab = "Tabelle1"

myInput = InputBox("Gib einen Wert zur Prüfung ein!", "Datenprüfung")

If myInput <> "" Then
FindData = Application.Match(myInput, Worksheets(myTab).Range("A1:A20"), 0)
If IsError(FindData) Then
 Call MsgBox("Element: " & myInput & " nicht gefunden", vbCritical)
Else
   Worksheets(myTab).Range("B" & FindData).Value = "Erledigt"
End If
End If
End Sub

RobinM66 
Beitragsersteller
 13.09.2019, 10:24

//Edit: Mein Fehler. Es funktioniert soweit, jedoch wird "erledigt" an die falsche Stelle gesetzt. Die Range ist (A3:A50) (bereits geändert). Nur leider setzt er so dadurch das Wort "erledigt" immer zwei Zellen zu früh?

1
RobinM66 
Beitragsersteller
 13.09.2019, 10:28
@RobinM66

Beispiel: Wert aus A20 wird gesucht und gefunden. Jedoch erscheint das Wort "Erledigt" in B18

1
Dudenox2  13.09.2019, 10:40
@RobinM66

Ein bisschen selbst nachdenken :p

Du suchst innerhalb von A3 und A50, heißt du hast 48 mögliche Felder. Ist es in A3, dann bezieht sich das auf Feld 1 in deinem Range. Da sich das Makro zuvor auf A1 bezogen hat passte A1 und 1, jetzt ist es A3 und 1.

Einfach

Worksheets(myTab).Range("B" & FindData + 2).Value = "Erledigt"

Edit Frage: ist dein Wert denn ein Unikat? Denn das hier würde es nur einmal ausführen. Ansonsten kannst du einfach eine Schleife laufen lassen, die sich nach erfolgreichem ausführen um 1 erhöht und wenn er nichts findet den Error ausspuckt und Exit Sub folgt

3
RobinM66 
Beitragsersteller
 13.09.2019, 10:52
@Dudenox2

Super funktioniert alles. Mir ist bewusst gewesen, dass diese Verschiebung durch die Zellen sind aber ich wusste nicht, wo diese +2 hinkommen. Im nachhinein ist es relativ logisch.

Trotzdem, vielen Dank euch beiden.

2
RobinM66 
Beitragsersteller
 13.09.2019, 10:05

Super, vielen dank. Die InputBox funktioniert. Wenn ein Wert gesucht wird, der nicht vorhanden ist, gibt er die Fehlermeldung richtig wieder.

Jedoch im Falle des richtigen Wertes gibt er gar nichts wieder bzw. ändert nicht in der gewünschten Tabelle 2 in Spalte B neben dem Suchwert den Zelleninhalt zu "erledigt".

1
RobinM66 
Beitragsersteller
 13.09.2019, 10:13
@RobinM66

Ich habe es jetzt noch Versucht und etwas geändert. Jedoch wird in der falschen Spalte "erledigt" angezeigt.

1

Die Eingabe setzt du mit InputBox um.

Den Prozess des Suchens kannst du mit dem Makrorekorder aufzeichnen und dir den Quellcode kopieren.

Findest du den Wert in Zeile x, kannst du mit Cells(x, 2).Value = "erledigt" das Kennzeichen in Spalte B setzen.

Findest du den Wert nicht, gibst du die Fehlermeldung mit MsgBox aus.

Woher ich das weiß:Berufserfahrung – Programmierer

Iamiam  13.09.2019, 15:11

Variable = inputbox(.....) Im Ggs zur Msg-box ist hier eine Variable Pflicht!

1