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

Forumthread: VBA MsgBox Zeile suchen

VBA MsgBox Zeile suchen
14.09.2018 11:29:37
Marquardt
Hallo,
ich möchte nach einer Abfrage (MsgBox) in Spalte A eine Zeile suchen und dann einen bestimmten Wert (auch über Abfrage MsgBox) in der gleichen Zeile aber in Spalte B eintragen.
Ist das möglich?
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA MsgBox Zeile suchen
14.09.2018 12:13:30
Gerd
Moin!
Sub Abfragen()
Dim A, B, X
A = InputBox("Suche", "Zeile ermitteln")
B = InputBox("Engabe", "Wert eintragen")
If StrPtr(A)  0 And StrPtr(B)  0 Then
X = Application.Match(A, Columns(1), 0)
If IsNumeric(X) Then
Cells(X, 2) = B
Else
MsgBox "Suche war erfolglos", vbCritical, "Kein Treffer!"
End If
End If
End Sub

Gruß Gerd
Anzeige
AW: VBA MsgBox Zeile suchen
14.09.2018 13:00:01
Marquardt
Hallo Gerd,
vielen Dank für die schnelle Antwort.
Leider wird die eingegebene Zahl (in Spalte A)nicht gefunden.
Gruß Detlef
AW: VBA MsgBox Zeile suchen
14.09.2018 15:31:58
Gerd
Hallo Detlef,
probiers mal so. Klappt dies auch nicht, müsstest du zu deiner Konstellation "nachliefern".
Sub Abfragen2()
Dim A, B, X
A = InputBox("Suche", "Zeile ermitteln")
B = InputBox("Engabe", "Wert eintragen")
If StrPtr(A)  0 And StrPtr(B)  0 Then
X = Application.Match(CVar(A), Columns(1), 0)
If IsNumeric(X) Then
Cells(X, 2) = B
Else
MsgBox "Suche war erfolglos", vbCritical, "Kein Treffer!"
End If
End If
End Sub
Gruß Gerd
Anzeige
Suche A - Eingabe B
14.09.2018 15:29:02
EtoPHG
Hallo,
Versuch mal:
Option Explicit
Sub SucheUndEingabe()
Dim suchWert As String
Dim eingabeWert As String
Dim fndCell As Range
suchWert = InputBox("Geben Sie den Suchwert für die Spalte A ein:", _
"Suchwert Eingabe")
If suchWert = "" Then Exit Sub
Set fndCell = ActiveSheet.Columns(1).Find(what:=suchWert)
If fndCell Is Nothing Then
MsgBox suchWert & " wurde in Spalte A nicht gefunden!", vbCritical, "Suche erfolglos"
Else
eingabeWert = InputBox(suchWert & " in Zelle " & fndCell.Address(0, 0) & _
"gefunden." & vbCrLf & "Wert für Spalte B eingeben:", "Wert für  _
Spalte B")
fndCell.Offset(, 1) = eingabeWert
End If
End Sub
Gruess Hansueli
Anzeige
AW: Suche A - Eingabe B
14.09.2018 17:23:47
Marquardt
Hallo Gerd und Hansueli,
wirklich super.
Vielen Dank.
AW: Gerne, keine Ursache (owT)
15.09.2018 13:50:13
EtoPHG

AW: Suche A - Eingabe B
17.09.2018 09:30:14
Marquardt
Guten Morgen Hansueli,
ist es möglich den Eingabewert der Spalte aus eine Zelle zu beziehen?
Gruss Detlef
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Zeile in Excel mit VBA MsgBox suchen und Wert eintragen


Schritt-für-Schritt-Anleitung

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

  2. Füge ein neues Modul hinzu:

    • Klicke auf Einfügen > Modul.
  3. Kopiere und füge den folgenden Code ein:

    Sub SucheUndEingabe()
       Dim suchWert As String
       Dim eingabeWert As String
       Dim fndCell As Range
       suchWert = InputBox("Geben Sie den Suchwert für die Spalte A ein:", "Suchwert Eingabe")
       If suchWert = "" Then Exit Sub
       Set fndCell = ActiveSheet.Columns(1).Find(what:=suchWert)
       If fndCell Is Nothing Then
           MsgBox suchWert & " wurde in Spalte A nicht gefunden!", vbCritical, "Suche erfolglos"
       Else
           eingabeWert = InputBox(suchWert & " in Zelle " & fndCell.Address(0, 0) & _
           " gefunden." & vbCrLf & "Wert für Spalte B eingeben:", "Wert für Spalte B")
           fndCell.Offset(, 1) = eingabeWert
       End If
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus:

    • Gehe zu Entwicklertools > Makros, wähle SucheUndEingabe aus und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Fehler: "Suche war erfolglos"

    • Lösung: Stelle sicher, dass der Suchwert tatsächlich in Spalte A vorhanden ist. Überprüfe auch, ob Du die richtige Schreibweise verwendest.
  • Fehler: Eingabewert wird nicht in Spalte B eingetragen

    • Lösung: Überprüfe, ob die Zelle, in die Du den Wert eintragen möchtest, nicht schreibgeschützt ist.

Alternative Methoden

  • Du kannst auch die Find-Methode benutzen, um nach dem Wert in Spalte A zu suchen, wie im Beispiel von Hansueli gezeigt:

    Set fndCell = ActiveSheet.Columns(1).Find(what:=suchWert)
  • Eine andere Möglichkeit, das Ergebnis zu verarbeiten, ist die Verwendung von Application.Match:

    X = Application.Match(CVar(A), Columns(1), 0)

Praktische Beispiele

  1. Suche nach einem Namen in Spalte A und trage das Alter in Spalte B ein:

    • Starte das Makro und gib den Namen ein, der in Spalte A steht, und das Alter, das Du in Spalte B eintragen möchtest.
  2. Verwende eine Zelle für den Eingabewert:

    • Du kannst den Eingabewert aus einer bestimmten Zelle beziehen, indem Du den Wert direkt aus dieser Zelle zuweist:
    eingabeWert = Range("C1").Value ' Beispiel für Zelle C1

Tipps für Profis

  • Verwende Option Explicit am Anfang Deines Codes, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.

  • Fehlerbehandlung einfügen: Nutze On Error Resume Next, um sicherzustellen, dass Dein Makro nicht abstürzt, wenn ein Fehler auftritt.

  • Testen und Debuggen: Nutze den Debugger im VBA-Editor, um Deine Variablen zu überwachen und den Code Schritt für Schritt auszuführen.


FAQ: Häufige Fragen

1. Kann ich das Makro auch für andere Spalten verwenden?
Ja, Du kannst die Spaltenreferenzen im Code anpassen, um das Makro für andere Spalten zu verwenden.

2. Wie kann ich den Suchwert direkt aus einer Zelle beziehen?
Du kannst den Suchwert wie folgt zuweisen:

suchWert = Range("A1").Value ' Beispiel für Zelle A1

3. Was tun, wenn ich mehrere Übereinstimmungen habe?
Der Code sucht nur nach der ersten Übereinstimmung. Du müsstest eine Schleife implementieren, um alle Übereinstimmungen zu finden.

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