joeblackjr
Goto Top

Werte in einer Tabelle suchen

hallo zusammen,
bin leider kein programmierer, aber vieleicht kann mir ja einer von euch freaks helfen.

folgende erleichterung hätte ich gerne in einer excel-tabelle:

die tabell besitzt zwei spalten: PLZ und TOUR

ich hätte gerne in einem eingabefeld eine "PLZ" eingegeben und nach bestätigung die in der gleichen zeile eingetragene tour (lieferung von lebensmittel) angezeigt.

ist denke ich für einen vba-freak keine große sache, wenn mas aber nicht kann ein "?". danke im voraus.

gruß joe

Content-Key: 117247

Url: https://administrator.de/contentid/117247

Printed on: April 20, 2024 at 04:04 o'clock

Mitglied: 76109
76109 Jun 02, 2009 at 06:52:39 (UTC)
Goto Top
Hallo Joe,

Zitat von @joeblackjr:
die tabell besitzt zwei spalten: PLZ und TOUR
Wäre nicht schlecht, wenn Du hierfür die Spalten-Bezeichnung mit angeben würdest. Und wenn es mehrere Arbeitsblätter gibt, dann bitte auch den Tabellennamen.

Gruß Dieter
Member: joeblackjr
joeblackjr Jun 02, 2009 at 08:17:31 (UTC)
Goto Top
hallo dieter,
danke für die schnelle antwort.

spalte "A" ist mit "PLZ" bezeichnet und spalte "B" mit "Gebiet".

ein arbeitsblatt mit der standard-bezeichnung "Tabelle1"

arbeitsmappe ist mit "GebietePLZ" gespeichert.

gruß joe
Mitglied: 73234
73234 Jun 02, 2009 at 08:45:14 (UTC)
Goto Top
Member: joeblackjr
joeblackjr Jun 02, 2009 at 09:25:54 (UTC)
Goto Top
hallo minion,
danke auch für deinen schnellen lösungsvorschlag.

ich dachte da aber an eine art eingabefenster (habe mal nachgeschaut und müsste in vba eine "InputBox" sein, die sich beim start der arbeitsmappe öffnet. da soll dann die "PLZ" einegegeben werden und nach bestätigen mit "Enter" soll die in der gleichen zeile in spalte"B" eingetragen tour in form eine "MsgBox" ausgegeben werden.

gruß joe
Member: Netzheimer
Netzheimer Jun 02, 2009 at 10:32:54 (UTC)
Goto Top
Hallo.

Warum muss es so kompliziert sein? Da reicht doch die Suchfunktion im Excel vollkommen aus (Strg+F) die springt dann in das Feld mit der gesuchten PLZ und zeigt in der gleichen Zeile die Tour an.

Gruß
Netzheimer
Member: joeblackjr
joeblackjr Jun 02, 2009 at 11:00:39 (UTC)
Goto Top
hallo netzheimer,
danke für deine info in bezug auf komplizierten arbeitsabläufen.

hier geht es um wechsende mitarbeiterinen die zwei stunden am tag touren zuortnen und die suchabfrage in dieser zeit xxxx mal starten müssen.

mein gedanke war, das es wohl eine erleichterung ist wenn sie in einem eingabefeld die PLZ eingeben die sie ablesen und gleich die nummer der tour angezeigt bekommen.

ich jeder der so eine arbeit länger als 5 minuten am stück gemacht hat, weis das die einfachheit der standard-suchfunktion in der tabelle auf dauer sehr kompliziert und anstrengent sein kann.

gruß joe
Member: daywalker
daywalker Jun 02, 2009 at 11:56:58 (UTC)
Goto Top
Hi,

schonmal was vom SVERWEIS gehört!?

--> Sucht in der am weitesten links gelegenen Spalte einer Tabelle nach einem Wert und gibt in der gleichen Zeile einen Wert aus einer von Ihnen angegebenen Spalte in der Tabelle zurück. Verwenden Sie SVERWEIS statt WVERWEIS, wenn sich Ihre Vergleichswerte in einer Spalte links von den Daten befinden, die Sie suchen möchten.

Excelstandartfunktion, die sollte genau das machen was du willst face-smile


Mfg Daywalker
Mitglied: 76109
76109 Jun 02, 2009 at 12:00:08 (UTC)
Goto Top
Hallo Joe,

also, wenn ich das richtig verstehe, dann soll bereits beim Öffnen der Arbeitsmappe eine automatische Abfrage erfolgen und wahrscheinlich auch mehrere Abfragen hintereinander z.B. Weiter mit "Ja" und Beenden mit "Nein" bestätigt werden können.

Gruß Dieter
Member: joeblackjr
joeblackjr Jun 02, 2009 at 12:48:14 (UTC)
Goto Top
hallo dieter,

ja so währe das für die mädels denke ich am besten bzw. am schnellsten zu bearbeiten.

gruß joe

p.s. daywalker: danke für den hinweis, ich werde mal testen wie das passen könnte.
Member: daywalker
daywalker Jun 02, 2009 at 13:02:25 (UTC)
Goto Top
Haben bei uns eine Ähnliche Datei und da funkt das einwandfrei. Nur da suchen wir über die Kundennummer den Namen face-smile
Mitglied: 76109
76109 Jun 02, 2009 at 16:59:52 (UTC)
Goto Top
Hallo Joe!

Hatte heute leider wichtige Termine und einiges zu erledigen, deshalb hat es etwas länger gedauert.

Die Beispieldateien von "Minion" würden Deinen Zweck auch erfüllen (ist ausbaufähig).
Ich persönlich würde als einfachste Lösung, wie von "daywalker" bereits angemerkt, die Funktion SVERWEIS verwenden, wobei Du eine Zelle benötigst, in der die Eingabe der Postleitzahl erfolgen soll und eine Zelle, in der die Formel steht.

Die Formel für den SVERWEIS könnte man dazu noch in eine Wenn-Bedingung einbinden, sodass ein Wunsch-Text anstatt von #NV angezeigt wird, wenn die Postleitzahl nicht gefunden wurde.

Die einfache Formel für Spalte A = Plz, Spalte B = Tour und Spalte C1 = Eingabe Plz:
=SVERWEIS(C1;A:B;2;FALSCH)
Die Wenn-Formel mit den gleichen Spalten:
=WENN(ISTNV(SVERWEIS(C1;A:B;2;FALSCH));"Ein Text";SVERWEIS(C1;A:B;2;FALSCH))  
Und falls Du doch ein Makro verwenden möchtest, dann kannst Du das auch noch haben:

Füge diesen Quelltext im VB-Editor in <DieseArbeitsmappe> ein. Dadurch wird die Input-Box nach dem Öffnen sofort angezeigt:
Private Sub Workbook_Open()
    Call GetTour
End Sub

Füge diesen Quelltext im VB-Editor in <Modul1> ein:
Option Explicit

Const BoxT = "Tourensuche"  
Const BoxP = "Postleitzahl "  
Const MsgT = "Tour = "  
Const MsgI = "Bitte eine gültige Postleitzahl eingeben:"  
Const MsgP = "Postleitzahl nicht gefunden: "  
Const MsgO = vbCr & vbCr & "Weiter mit OK oder Enter"  

Sub GetTour()
    
    Dim Wks As Worksheet, Daten As Object, Plz As String
    
    On Error Resume Next
    
    Set Wks = Worksheets("Tabelle1"):  If Err Then Exit Sub  
OK:
    Plz = InputBox(MsgI, BoxT):  If Plz = "" Then Exit Sub  
    
    Application.ScreenUpdating = False
    
    Set Daten = Wks.Columns(1).Find(Plz, LookAt:=xlWhole)
    
    Application.ScreenUpdating = True
    
    If Daten Is Nothing Then
        If MsgBox(MsgP & Plz & MsgO, vbOKCancel Or vbExclamation, BoxT) = vbOK Then GoTo OK
    Else
        If MsgBox(MsgT & Daten.Offset(0, 1) & MsgO, vbOKCancel, BoxP & Plz) = vbOK Then GoTo OK
    End If
End Sub

Die Textkonstanten können nach belieben angepasst werden. Für den Fall, dass eure Mädels den Vorgang unbeabsichtigt beenden, währe es noch sinnvoll das Makro zusätzlich mit einer Tastenkombination zu verknüpfen.

Die Suchfunktion läuft unbegrenzt, sofern in der Input-Box keine Leer-Eingabe erfolgt und immer der OK-Button betätigt wird.

Gruß Dieter
Member: joeblackjr
joeblackjr Jun 03, 2009 at 13:05:48 (UTC)
Goto Top
hallo dieter,
vielen dank, auch von den mädels.

auch ein danke an "minion" und den "daywalker". Habe alle drei mögliche lösungen den mädels vorgelegt. die entscheidung fiel eindeutig auf den vorschlag von dieter.

hab mal wieder eine kleines stück vom programmierer-glück erkennen dürfen.

schöne grüße an alle

joe
Mitglied: 76109
76109 Jun 03, 2009 at 14:57:37 (UTC)
Goto Top
Hallo joe!

Tja, im Gegensatz zu uns Männer, geben sich die Mädels eben nicht mit einfachen Dingen zufriedenface-smile

Gruß Dieter