Fehlerhandling bei mehrdeutigen Einträgen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Fehlerhandling bei mehrdeutigen Einträgen
von: Kai Servas
Geschrieben am: 09.06.2015 22:38:13

Hallo,
ich habe folgendes Problem:
Es gibt eine große Liste mit Datensätzen in den Spalten
A: PLZ; B: Ortsname; C-E: weitere Ortsbezogene Attribute
Ein anderes Tabellenblatt dient als eine Art Eingabemaske (z.B. B2:Ortsname, B3:KFZ, B4:PLZ), _ in welcher der via Dropdown-Liste einen Ortsnamen auswählen kann und dann die PLZ sowie die weiteren Attribute automatisch ergänzt werden. Leider gibt es mehrdeutige Ortsnamen (z.B. Neustadt) bei denen mein Code nur den erste Datensatz ausgibt. Hier bräuchte ich Hilfe um einen VBA-Code zu entwickeln, welcher bei mehrdeutigen Ortsnamen den User zur Eingabe der PLZ auffordert.


Public Sub vba_getGmdePLZ()
    If Worksheets("Eingabemaske").Range("B5") = "" Or _
        Worksheets("Eingabemaske").Range("B5") = "" Then
        Worksheets("Eingabemaske").Range("B5") = WorksheetFunction.Index(Sheets("GMDE_PLZ"). _
Columns(1), WorksheetFunction.Match(Worksheets("Eingabemaske").Range("B3"), Sheets("GMDE_PLZ").  _
_
Columns(2), 0))
    End If
End Sub
Public Sub vba_getGmdeKfz()
    strGdePLZ = Worksheets("Eingabemaske").Range("B5")
    strLkrKey = Left(strGdeKey, 5)
    If Worksheets("Eingabemaske").Range("B4") = "" Or _
        Worksheets("Eingabemaske").Range("B4") = "" Then
        Worksheets("Eingabemaske").Range("B4") = WorksheetFunction.VLookup(strGdePLZ, Sheets("   _
_
_
GMDE_PLZ").[A2:C2500], 3, False)
    End If
End Sub
usw.

Die einzelnen Subprozedoren werden dann natürlich in einer Übergeordneten verknüpft.
Ich hoffe, dass ich mich einigermaßen verständlich ausdrücken konnte. Vielen Dank!
Gruß Kai

Bild

Betrifft: AW: Fehlerhandling bei mehrdeutigen Einträgen
von: Kenny
Geschrieben am: 10.06.2015 09:05:16
Hallo Kai,
verstehe dein Code nicht, aber prinzipiell müsste dein Problem folgendermaßen lösbar sein.
Bei Fragen einfach melden!


Private Sub Combo_Change()
Set wa = Worksheets("tabelle1")
zähler = 0
For zeile = 2 To wa.UsedRange.Rows.Count
    If Combobox1.Value = wa.Cells(zeile, 2) Then
        zähler = zähler + 1
    End If
Next
If zähler > 1 Then
    MsgBox "Stadt mehrfach vorhanden! Bitte zusätzlich die PLZ eingeben"
    Exit Sub
End If
End Sub
Als erstes wird überprüft wie oft die Stadt vorhanden ist. Falls öfters als einmal kommt eine Fehlermeldung und eine Beendigung des Programms, damit die Maske erst nach dem Eingeben der PLZ ausgefüllt wird.
Grüße

Bild

Betrifft: AW: Fehlerhandling bei mehrdeutigen Einträgen
von: Kai Servas
Geschrieben am: 10.06.2015 12:09:17
Vielen Dank Kenny für deine Antwort!
Ich werde versuchen deine Idee umzusetzen und komme bei Problemen nochmals darauf zurück

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Fehlerhandling bei mehrdeutigen Einträgen"