Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Wert in Zeile suchen und Spalte ausgeben

Wert in Zeile suchen und Spalte ausgeben
18.07.2020 22:59:08
Ingo
Hallo zusammen,
ich habe nicht so viel Ahnung von VBA und bräuchte mal eure Unterstützung.
Ich habe schon viele Beiträge durchsucht, aber keiner konnte mir so richtig helfen.
Ich möchte einen Wert in der Tabelle1 in Zeile 1 suchen.
Die Eingabe des Suchwertes soll über eine Inputbox erfolgen, aber wenn der Wert "" oder nicht gefunden wird, soll die Eingabeaufforderung erneut erfolgen.
Nun soll die Spaltennummer von der Spalte rechts neben der Spalte in der mein Suchwert steht, der Variable "z" zugewiesen werden.
Beispiel:
Ich suche die Zahl 30, diese steht in der Tabelle1, Spalte g.
Dann soll z = 6 ergeben.
Viele Dank schon mal und Gruß
Ingo
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
=VERGLEICH(30;1:1;0)-1
18.07.2020 23:38:43
WF
das ist aber die Spalte links von G (nicht rechts).
WF
AW: Wert in Zeile suchen und Spalte ausgeben
18.07.2020 23:42:01
Werner
Hallo,
Option Explicit
Public Sub aaa()
Dim z As Long, varSuche As Variant, raFund As Range
With Worksheets("Tabelle1")
neustart:
varSuche = Application.InputBox("Suchbegriff eingeben.", "Suche nach...", Type:=1)
If varSuche = False Then Exit Sub
Set raFund = .Rows(1).Find(what:=varSuche, LookIn:=xlValues, lookat:=xlWhole)
If Not raFund Is Nothing Then
z = raFund.Offset(, 1).Column
MsgBox "Spalte: " & z
Else
MsgBox "Suche nach " & varSuche & " erfolglos."
GoTo neustart
End If
End With
End Sub
Gruß Werner
Anzeige
AW: Wert in Zeile suchen und Spalte ausgeben
19.07.2020 07:38:17
Ingo
Hallo zusammen,
ihr seid ja echt der Wahnsinn. Hätte nicht so schnell mit einer Lösung gerechnet.
#WF
Ja ich meine natürlich die Spalte links daneben.
Anscheinend habe ich auch noch eine rechts/links-Schwäche. Grins.
#Werner
Genau nach so einer VBA-Formel habe ich gesucht.
Die macht genau das was ich haben möchten.
Habe den Offset auf -1 gesetzt da ich ja als Ergebnis eine Spalte vorher haben möchte.
Danke, Danke, Danke
Gruß
Ingo
Anzeige
Gerne u. Danke für die Rückmeldung. o.w.T.
19.07.2020 14:41:59
Werner
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Wert in Zeile suchen und Spalte ausgeben in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um einen Wert in einer bestimmten Zeile zu suchen und die Spaltennummer auszugeben, kannst du VBA in Excel verwenden. Hier ist eine einfache Anleitung:

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

  2. Füge ein neues Modul hinzu:

    • Rechtsklicke im Projektfenster auf dein Projekt.
    • Wähle Einfügen > Modul.
  3. Kopiere folgenden Code in das Modul:

    Option Explicit
    Public Sub SucheUndGebeSpalteAus()
        Dim z As Long, varSuche As Variant, raFund As Range
        With Worksheets("Tabelle1")
        neustart:
            varSuche = Application.InputBox("Suchbegriff eingeben.", "Suche nach...", Type:=1)
            If varSuche = False Then Exit Sub
            Set raFund = .Rows(1).Find(what:=varSuche, LookIn:=xlValues, lookat:=xlWhole)
            If Not raFund Is Nothing Then
                z = raFund.Offset(, 1).Column
                MsgBox "Spalte: " & z
            Else
                MsgBox "Suche nach " & varSuche & " erfolglos."
                GoTo neustart
            End If
        End With
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus:

    • Gehe zu Entwicklertools > Makros, wähle SucheUndGebeSpalteAus und klicke auf Ausführen.
  6. Gib den Suchwert ein, z. B. "30", und klicke auf OK. Die Spaltennummer wird in einer Meldung angezeigt.


Häufige Fehler und Lösungen

  • Fehler: "Suche nach ... erfolglos."

    • Lösung: Stelle sicher, dass der Wert in der ersten Zeile der Tabelle1 vorhanden ist.
  • Fehler: Eingabeaufforderung erscheint nicht.

    • Lösung: Überprüfe, ob das Makro tatsächlich gestartet wurde. Möglicherweise musst du die Makros in den Excel-Optionen aktivieren.
  • Fehler: Spalte wird nicht korrekt ausgegeben.

    • Lösung: Vergewissere dich, dass der Offset im Code korrekt eingestellt ist. Das Beispiel gibt die Spalte rechts von der gefundenen Spalte aus.

Alternative Methoden

  1. Verwendung von Excel-Formeln:

    • Du kannst die Formel =VERGLEICH(Suchwert;A1:Z1;0) verwenden, um die Position eines Wertes in der ersten Zeile zu ermitteln. Um die Spalte auszugeben, kannst du die Formel anpassen.
  2. Power Query:

    • Wenn du eine größere Datenmenge bearbeitest, könnte Power Query eine nützliche Alternative sein, um Werte zu suchen und zu analysieren.

Praktische Beispiele

  • Beispiel 1: Suche nach "30" in der ersten Zeile.

    • Wenn "30" in Spalte G steht, gibt das Makro 6 aus, da G die 7. Spalte ist, und der Offset auf 1 gesetzt ist.
  • Beispiel 2: Suche nach einem Textwert.

    • Wenn du nach "Apfel" suchst und es in Spalte C steht, wird 4 ausgegeben, wenn der Offset entsprechend angepasst ist.

Tipps für Profis

  • Debugging: Nutze Debug.Print innerhalb des Codes, um den Wert von Variablen während der Ausführung zu überwachen.
  • Erweiterung des Codes: Du kannst den Code erweitern, um mehrere Werte gleichzeitig zu suchen oder sogar eine Liste von Suchwerten durchzugehen.
  • Optimierung: Verwende FindNext, um alle Vorkommen eines Wertes in der Zeile zu finden und nicht nur das erste.

FAQ: Häufige Fragen

1. Wie kann ich den Suchbereich ändern? Du kannst den Rows(1)-Teil im Code ändern, um eine andere Zeile zu durchsuchen, z. B. Rows(2) für die zweite Zeile.

2. Funktioniert das in allen Excel-Versionen? Ja, der VBA-Code sollte in allen modernen Excel-Versionen funktionieren, die VBA unterstützen.

3. Kann ich die Eingabeaufforderung anpassen? Ja, du kannst den Text in der Application.InputBox-Funktion ändern, um spezifischere Anweisungen zu geben.

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