Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Wert suchen und in andere Zeile springen

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

Anzeige

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...
Anzeige
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
;
Anzeige
Anzeige

Infobox / Tutorial

Wert suchen und in andere Zeile springen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Erstelle ein neues Modul:

    • Klicke im Menü auf "Einfügen" und wähle "Modul".
  3. Füge den folgenden Code ein:

    Sub WertSuchen()
       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 lautete: " & finden & " " & finden.Offset(, -1) & " " & finden.Offset(, -2)
           Else
               MsgBox "Der Suchbegriff " & Wert & " wurde nicht gefunden."
           End If
       End If
    
       Set finden = Nothing
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Starte das Makro über ALT + F8, wähle WertSuchen und klicke auf „Ausführen“.

  6. Gib den Wert (z. B. K2) in das Eingabefeld ein und klicke auf „OK“. Du erhältst die entsprechenden Werte aus den Spalten A und B.


Häufige Fehler und Lösungen

  • Problem: "Der Suchbegriff wurde nicht gefunden."

    • Lösung: Überprüfe, ob der eingegebene Wert exakt mit dem Wert in Spalte C übereinstimmt (Groß-/Kleinschreibung beachten).
  • Problem: Laufzeitfehler bei der Suche.

    • Lösung: Stelle sicher, dass der Bereich Range("C1:C9") korrekt definiert ist und keine leeren Zellen enthält.

Alternative Methoden

Du kannst auch ein Excel Suchfeld erstellen mit Sprung, um direkt zu den gesuchten Werten zu navigieren. Hierfür kannst du ein Dropdown-Menü verwenden, das die Werte aus Spalte C enthält. Das so erstellte Suchfeld kann mit einer einfachen Verknüpfung zu den entsprechenden Zeilen genutzt werden.


Praktische Beispiele

Hier ist ein einfaches Beispiel, um die Anwendung zu demonstrieren:

  1. Tabelle erstellen:

    A        | B | C
    ---------|---|---
    HausA    | 1 | K1
    HausB    | 2 | K2
    HausC    | 3 | K3
  2. Eingabefeld erstellen:

    • Nutze ein Dropdown-Menü in Zelle D1 mit den Werten K1, K2, K3.
  3. Makro anpassen:

    • Ändere den Code, um D1 als Eingabewert zu verwenden und springe zur entsprechenden Zeile.

Tipps für Profis

  • Nutze die Option Explicit-Anweisung, um sicherzustellen, dass alle Variablen deklariert sind.
  • Vermeide Crossposting in Foren, um die Qualität der Diskussionen zu erhöhen.
  • Experimentiere mit der Find-Methode, um zusätzliche Parameter wie LookAt und LookIn effektiv zu nutzen.

FAQ: Häufige Fragen

1. Was bewirkt "vbNullString"? vbNullString ist ein spezieller Wert, der in VBA verwendet wird, um einen leerer String darzustellen. Es ist nützlich, um zu überprüfen, ob ein Eingabefeld leer ist.

2. Kann ich die Suche auf mehrere Kriterien erweitern? Ja, du kannst mehrere Variablen kombinieren und anpassen, um nach spezifischen Kombinationen wie Hausname und Nummer zu suchen.

3. Wie kann ich das Suchfeld erstellen? Du kannst ein Dropdown-Menü in einer Zelle erstellen, das auf die Werte in Spalte C verweist. Das gibt dir eine einfache Möglichkeit, die Suche zu starten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige