Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
960to964
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
960to964
960to964
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
TextFeld und VLookup
13.03.2008 10:48:00
Jean-Pierre
Hallo Forum,
in einer Userform habe ich u.A. zwei Textfelder, txtPLZ und txtOrt
Im Feld txtPLZ soll eine Postleitzahl eingegeben, der entsprechende Ort wird in der Tabelle "PLZ" gesucht und in das Textfeld txtOrt eingetragen.
Das klappt schon ganz gut, bis auf den Fall, dass mehrere Orte dieselbe PLZ haben, dann wird nur der erste Treffer in txtOrt eingetragen.
  • 
    Private Sub txtPLZ_Change()
    On Error GoTo ERRORHANDLER
    If Len(txtPLZ)  5 Then Exit Sub
    Me.txtOrt = WorksheetFunction.VLookup(CDbl(txtPLZ), Worksheets("PLZ").[A:B], 2, 0)
    Me.txtOrt.SetFocus
    Exit Sub
    ERRORHANDLER:
    MsgBox "Die Postleitzahl " & vbCr & txtPLZ & vbCr & " existiert in der Datenbank nicht !",  _
    vbInformation, "Eingabefehler"
    Me.txtPLZ = ""
    Me.txtOrt = ""
    End Sub
    


  • Die Lösung mit VLookup scheint nicht der richtige Weg zu sein.
    Wie muss ich vorgehen, um bei Mehrfachtreffern alle Orte mit der selben PLZ herausfiltern und zur Auswahl anzeigen kann?
    Vielen Dank im Voraus
    Jean-Pierre

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

    Betreff
    Datum
    Anwender
    Anzeige
    AW: TextFeld und VLookup
    13.03.2008 15:22:00
    Rudi
    Hallo,
    lass dir die Orte in einer Listbox (lbxOrt) anzeigen.
    
    Private Sub txtPLZ_Change()
    Dim vnt1, vnt2(), n As Long, i As Long
    vnt1 = Sheets("PLZ").Range("A1").CurrentRegion
    ReDim vnt2(1 To 1, 1 To UBound(vnt1))
    For i = 2 To UBound(vnt1)
    If Left(vnt1(i, 1), Len(txtPLZ)) = txtPLZ Then
    n = n + 1
    vnt2(1, n) = vnt1(i, 2)
    End If
    Next i
    If n > 0 Then
    ReDim Preserve vnt2(1 To 1, 1 To n)
    lbxOrt.List = WorksheetFunction.Transpose(vnt2)
    Else
    lbxOrt.Clear
    End If
    End Sub
    


    Gruß
    Rudi
    Eine Kuh macht Muh, viele Kühe machen Mühe

    Anzeige
    AW: TextFeld und VLookup
    14.03.2008 10:12:00
    Jean-Pierre
    Hallo Rudi Maintaire,
    Herzlichen Dank für die rettende Lösung
    und viele Grüße aus Reutlingen
    Jean-Pierre

    AW: TextFeld und VLookup
    14.03.2008 11:04:50
    Jean-Pierre
    Hallo Rudi Maintaire,
    da hätte ich noch eine Zusatzfrage:
    Ich möchte die vorhandene Struktur erhalten, d.h. das TextFeld txtOrt bleibt bestehen und zusätzlich füge ich die Listbox lbxOrt wie vorgeschlagen ein.
    Mit txtPLZ Change wird lbxOrt.visible = True
    Somit kann ich einen Teil der gesamten Userform temporär mit einer großflächigen Listbox überdecken.
    1 - wie muss de Code geändert werden, um eine zweispaltige Liste mit Überschrift und PLZ und Ort anzuzeigen?
    2 - können dann beide Daten (PLZ und Ort) mir Doppelclick in die Felder txtPLZ und txtOrt überommen werden.
    Vielen Dank im Voraus
    Jean-Pierre

    Anzeige
    AW: TextFeld und VLookup
    16.03.2008 10:42:00
    Jean-Pierre

    299 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige