Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1644to1648
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Wert suchen und in andere Zeile springen
25.09.2018 22:55:19
K
Hallo zusammen,
Bin neu in VBA und ich stecke fest...
Also sagen wir mal ich habe folgende Tabelle:
.....A..................................B...........C
1. HausA........................... 1.......... K1
2. HausB.......................... 2...........K2
3. HausC.......................... 3...........K3
Ich möchte in einem Eingabe Feld ein Wert eingeben aus C und der soll mir dann den wert aus der gleichen Zeile von B und A raus geben.
Ich möchte also z.b. K2 eingeben in dem Inputfeld und er soll mir 2 sagen und HausB
Wie macht man das?
Habe bisher folgenden Code, aber ich komm nicht drauf wie es weiter geht :-(
Sub Zelle()
Dim finden As Range
Dim Wert As String
Wert = InputBox("Bitte Wert eingeben", "Makro", "Bsp.:K1")
Set finden = Range("A2:D9").Find(what:=Wert)
MsgBox "Die Suche lautet: " & finden & " hier fehlt mir de Befehl das er eine Zeile vorher  _
anzeigt
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wert suchen und in andere Zeile springen
25.09.2018 23:40:04
Werner
Hallo,
ich bin auch kein Freund von Crossposting. Zumindest dann nicht, wenn nicht darauf aufmerksam gemacht wird. Das ist nicht die feine englische Art.
Da ich den Code aber schon geschrieben hatte will ich mal nicht so sein.
Sub Zelle()
Dim finden As Range
Dim Wert As String
Wert = InputBox("Bitte Wert eingeben", "Makro", "Bsp.:K1")
If Not Wert = vbNullString Then
Set finden = Range("C1:C9").Find(what:=Wert, LookAt:=xlWhole, LookIn:=xlValues)
If Not finden Is Nothing Then
MsgBox "Die Suche lautet: " & finden & " " & finden.Offset(, -1) _
& " " & finden.Offset(, -2)
Else
MsgBox "Der Suchbegriff " & Wert & " wurde nicht gefunden."
End If
End If
Set finden = Nothing
End Sub
Ein paar Anmerkungen:
Bei Find solltest du immer die zusätzlichen Parameter LookAt und LookIn mit angeben. Excel speichert immer die letzten Sucheinstellungen mit ab und verwendet die dann bei der Suche wenn die Parameter nicht explicit mit angegeben werden. Das kann zu unerwünschten Ergebnissen führen.
Dann sollte auch immer geprüft werden, ob die "Fund-Variable" ein Ergebnis hat, sonst läuft der Code in einen Fehler wenn der Suchbegriff nicht gefunden wurde.
Gruß Werner
Anzeige
AW: Wert suchen und in andere Zeile springen
26.09.2018 09:11:12
K
Danke für das Antworten.
Mit dem Code funktioniert es so wie ich es mir vorgestellt habe.
Ich kam auf den offset Befehl nicht :) und danke für die Tips.
Mit der if Anweisung sieht das ganze auch noch besser aus, danke.
Da ich ja was lernen will und nicht einfach Code kopieren willst, kannst du wenn du magst, mir kurz erklären was genau "vbNullString" bewirkt, irgendwie werde ich aus der englischen wiki nicht schlau zu dem Befehl...
AW: Wert suchen und in andere Zeile springen
26.09.2018 14:31:49
K
Werner kann ich die Suche auch auf zwei variablem setzen?
Müsste doch gehen ne?
Sprich:
.....A..................................B...........C
1. HausA........................... 1.......... K1
2. HausA.......................... 2...........K2
3. HausB.......................... 3...........K3
3. HausB.......................... 4...........K3
3. HausC.......................... 5...........K3
3. HausC.......................... 6...........K3
Eingabe 1(A) = HausA
Eingabe 2(B) = 2
Ausgabe C (MsgBox= K2)
Dann müsste ich zwei finden deklarieren und die mit & irgendwie koppeln ne?
Anzeige
AW: Wert suchen und in andere Zeile springen
28.09.2018 08:08:38
Werner
Hallo,
z.B. so:
Option Explicit
Public Sub Suche()
Dim raFund As Range, raBereich As Range, loLetzte As Long
Dim strA As String, strB As String, strBeide As String
Application.ScreenUpdating = False
With Worksheets("Tabelle1")
strA = InputBox("Bitte Haus eingeben", "Eingabe Haus", "z.B.: HausA")
If strA = vbNullString Then Exit Sub
strB = InputBox("Bitte Nummer eingeben", "Eingabe Nummer", "z.B.: 1")
If strB = vbNullString Then Exit Sub
strBeide = strA & strB
loLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
Set raBereich = .Range(.Cells(1, 26), .Cells(loLetzte, 26))
raBereich.FormulaLocal = "=A1&B1"
raBereich.Value = raBereich.Value
Set raFund = raBereich.Find(what:=strBeide, LookAt:=xlWhole, LookIn:=xlValues)
If Not raFund Is Nothing Then
MsgBox "Suche nach : " & strA & " und " & strB _
& vbLf & "Ergebnis: " & raFund.Offset(, -23)
Else
MsgBox "Die Kombination " & strA & " und " & strB & " wurde nicht gefunden."
End If
raBereich.ClearContents
End With
Set raBereich = Nothing: Set raFund = Nothing
Application.ScreenUpdating = True
End Sub
Wobei ich hier davon ausgegangen bin, dass in Spalte Z keine Daten vorhanden sind. Die Spalte Z wird im Code verwendet um die Daten aus Spalte A und B zu verknüpfen. Dort dürfen also keine Daten vorhanden sein.
Gruß Werner
Anzeige

332 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige