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

Forumthread: Wert via Msgbox suchen-Zeilenwert ausgeben

Wert via Msgbox suchen-Zeilenwert ausgeben
18.10.2019 13:40:37
Maya
Hallo liebes Herber Forum
ich bräuchte da mal bitte eure Hilfe.
Das Programm was ich schreiben möchte, soll folgende Funktion haben:
Der Nutzer wird aufgefordert eine PLZ einzugeben, der eingegebene Wert, wird dann in einem Tabellenblatt gesucht.
Wenn die PLZ gefunden wird, soll der Wert aus der jeweiligen Zeile in der Spalte J ausgegeben werden.
Ich habe bisher folgenden Code geschrieben

Sub Eingabe()
Dim Eingabe As String
Eingabe = InputBox("Bitte geben Sie eine PLZ ein")
End Sub


Sub PLZsuchen()
Dim i As Integer
Dim wks As Worksheet
Dim rng As Range
For i = 1 To Sheets("plz").UsedRange.Columns().Cells.Count
If Cells(i, 2).Value = Eingabe Then
End Sub

Ich hänge an dem Punkt, wo der Wert aus Spalte J für die jeweilige PLZ ausgelesen werden soll.
Bin über jede Hilfe dankbar..
Dankeschön:)
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Wert via Msgbox suchen-Zeilenwert ausgeben
18.10.2019 13:49:16
Werner
Hallo,
so:
Public Sub PLZ_suchen()
Dim strPLZ As String, raFund As Range
strPLZ = InputBox("Bitte eine Postleitzahl eingeben.", "Postleitzahl suchen")
If Not strPLZ = vbNullString Then
With Worksheets("plz")
Set raFund = .Columns(2).Find(what:=strPLZ, LookIn:=xlValues, lookat:=xlWhole)
If Not raFund Is Nothing Then
MsgBox raFund.Offset(, 8)
Else
MsgBox "Die gesuchte Postleitzahl ist nicht vorhanden."
End If
End With
End If
Set raFund = Nothing
End Sub
Gruß Werner
Anzeige
AW: Wert via Msgbox suchen-Zeilenwert ausgeben
18.10.2019 14:40:25
Maya
Habe es hinbekommen, musste nur de Wert für Offset ändern
Jetztz habe ich nach PLZ suchen einen Wert raus, dieser ist OST,NORD,Süd,WEST
Jetzt möchte ich in dem Tabellenblatt Region nach der Ausgabe suchen (OST,NORD,SÜD,WEST)und mir alle Daten für die Region in der Msgbox herausgeben lassen.
Danke Dir nochmals Werner
Anzeige
AW: Wert via Msgbox suchen-Zeilenwert ausgeben
18.10.2019 14:43:46
Werner
Hallo Maya,
das ist Salamitaktik, es geht immer scheibchenweise weiter.
Mit den Angaben kann ich nichts anfangen.
Lad mal deine Beispielmappe hoch und zeig auf, was du im Blatt Region für ein Ergebnis erwartest.
Gruß Werner
AW: Wert via Msgbox suchen-Zeilenwert ausgeben
18.10.2019 15:03:27
Maya
Entschuldige bitte; anbei der Link https://www.herber.de/bbs/user/132585.xlsx
Hier gibt es verschiedene Ansprechpartner zu den Regionen, wird also in der Abfrage vorher Mitte ausgegeben, sollen alle in der MsgBox ausgegeben werden
Danke:)
Anzeige
AW: Wert via Msgbox suchen-Zeilenwert ausgeben
18.10.2019 15:48:27
Werner
Hallo Maya,
den Offset(, 8) mußt du wieder anpassen - ich hab keine Ahnung wo du da deine Bereiche stehen hast.
Option Explicit
Public Sub PLZ_suchen()
Dim raFund As Range, raFund1 As Range, raBereich As Range, raZelle As Range
Dim strPLZ As String, strWert As String, strAusgabe As String, loLetzte As Long
strPLZ = InputBox("Bitte eine Postleitzahl eingeben.", "Postleitzahl suchen")
If Not strPLZ = vbNullString Then
With Worksheets("plz")
Set raFund = .Columns(2).Find(what:=strPLZ, LookIn:=xlValues, lookat:=xlWhole)
If Not raFund Is Nothing Then
strWert = raFund.Offset(, 8)
With Worksheets("Region")
loLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
Set raBereich = .Range(Cells(3, 1), .Cells(loLetzte, 1))
Set raFund = raBereich.Find(what:=strWert, LookIn:=xlValues, _
lookat:=xlWhole)
Set raFund1 = .Columns(1).Find(what:=strWert, LookIn:=xlValues, _
lookat:=xlWhole, searchdirection:=xlPrevious)
If Not raFund Is Nothing And Not raFund1 Is Nothing Then
Set raBereich = .Range(.Cells(raFund.Row, 1), .Cells(raFund1.Row, 1))
For Each raZelle In raBereich
If raZelle.Offset(, 2)  "" Then
If strAusgabe = vbNullString Then
strAusgabe = raZelle.Offset(, 2) & ", Telefon: " _
& raZelle.Offset(, 3) & ", Mail: " & raZelle.Offset(, 4)
Else
strAusgabe = strAusgabe & vbLf & raZelle.Offset(, 2) _
& ", Telefon: " & raZelle.Offset(, 3) & ", Mail: " _
& raZelle.Offset(, 4)
End If
End If
Next raZelle
MsgBox strAusgabe
Else
MsgBox "Der Bereich wurde in Region nicht gefunden."
End If
End With
Else
MsgBox "Die gesuchte Postleitzahl ist nicht vorhanden."
End If
End With
End If
Set raFund = Nothing: Set raFund1 = Nothing: Set raBereich = Nothing
End Sub
Das ganze in einer Messagebox - völlig unübersichtlich.
Gruß Werner
Anzeige
;

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

PLZ in Excel suchen und Zeilenwert ausgeben


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Modul hinzufügen: Klicke im Projektfenster mit der rechten Maustaste auf "VBAProject (DeinDateiname)", wähle "Einfügen" und dann "Modul".

  3. Code einfügen: Kopiere den folgenden VBA-Code in das Modul:

    Option Explicit
    Public Sub PLZ_suchen()
       Dim raFund As Range, raFund1 As Range, raBereich As Range, raZelle As Range
       Dim strPLZ As String, strWert As String, strAusgabe As String, loLetzte As Long
       strPLZ = InputBox("Bitte eine Postleitzahl eingeben.", "Postleitzahl suchen")
       If Not strPLZ = vbNullString Then
           With Worksheets("plz")
               Set raFund = .Columns(2).Find(what:=strPLZ, LookIn:=xlValues, lookat:=xlWhole)
               If Not raFund Is Nothing Then
                   strWert = raFund.Offset(, 8)
                   With Worksheets("Region")
                       loLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
                       Set raBereich = .Range(Cells(3, 1), .Cells(loLetzte, 1))
                       Set raFund = raBereich.Find(what:=strWert, LookIn:=xlValues, lookat:=xlWhole)
                       Set raFund1 = .Columns(1).Find(what:=strWert, LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlPrevious)
                       If Not raFund Is Nothing And Not raFund1 Is Nothing Then
                           Set raBereich = .Range(.Cells(raFund.Row, 1), .Cells(raFund1.Row, 1))
                           For Each raZelle In raBereich
                               If raZelle.Offset(, 2) <> "" Then
                                   If strAusgabe = vbNullString Then
                                       strAusgabe = raZelle.Offset(, 2) & ", Telefon: " & raZelle.Offset(, 3) & ", Mail: " & raZelle.Offset(, 4)
                                   Else
                                       strAusgabe = strAusgabe & vbLf & raZelle.Offset(, 2) & ", Telefon: " & raZelle.Offset(, 3) & ", Mail: " & raZelle.Offset(, 4)
                                   End If
                               End If
                           Next raZelle
                           MsgBox strAusgabe
                       Else
                           MsgBox "Der Bereich wurde in Region nicht gefunden."
                       End If
                   End With
               Else
                   MsgBox "Die gesuchte Postleitzahl ist nicht vorhanden."
               End If
           End With
       End If
       Set raFund = Nothing: Set raFund1 = Nothing: Set raBereich = Nothing
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle PLZ_suchen und klicke auf "Ausführen".


Häufige Fehler und Lösungen

  • Fehler: "Die gesuchte Postleitzahl ist nicht vorhanden."

    • Lösung: Überprüfe, ob die PLZ korrekt in Spalte B der Tabelle „plz“ eingegeben ist.
  • Fehler: "Der Bereich wurde in Region nicht gefunden."

    • Lösung: Stelle sicher, dass die gesuchten Regionen in der Tabelle „Region“ vorhanden sind und die richtigen Spalten verwendet werden.

Alternative Methoden

Wenn Du keine VBA-Programmierung verwenden möchtest, kannst Du auch die SVERWEIS-Funktion in Excel verwenden, um Werte basierend auf einer PLZ zu suchen. Der SVERWEIS könnte so aussehen:

=SVERWEIS(A1; plz!B:J; 9; FALSCH)

Hierbei wird in der Tabelle „plz“ nach dem Wert in A1 gesucht und der Wert in der 9. Spalte zurückgegeben.


Praktische Beispiele

  1. Suchen einer PLZ mit VBA:

    • Verwende den bereitgestellten VBA-Code, um die PLZ zu suchen und die entsprechenden Werte aus der Region anzuzeigen.
  2. Regionen zu PLZ zuordnen:

    • Nutze die Tabelle „Region“ und stelle sicher, dass die Regionennamen mit den Werten in der PLZ-Tabelle übereinstimmen.

Tipps für Profis

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung im VBA-Code, um unerwartete Fehler abzufangen und dem Benutzer eine klare Rückmeldung zu geben.
  • Datenvalidierung: Füge eine Dropdown-Liste für PLZs hinzu, um sicherzustellen, dass nur gültige PLZs eingegeben werden.

FAQ: Häufige Fragen

1. Wie passe ich den Code an, wenn ich andere Spalten verwenden möchte?
Du musst die Offset-Werte im Code anpassen, um die gewünschten Spalten zu referenzieren.

2. Kann ich die MsgBox anpassen, um die Ausgabe schöner zu gestalten?
Ja, Du kannst die Ausgabe in der MsgBox formatieren, indem Du Zeilenumbrüche oder andere Zeichen verwendest, um die Lesbarkeit zu verbessern.

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