Herbers Excel-Forum - das Archiv
Userform + SVERWEIS
Informationen und Beispiele zu den hier genannten Dialog-Elementen:

|
Betrifft: Userform + SVERWEIS
von: Franz W.
Geschrieben am: 22.11.2003 23:32:22
Hallo Fachleute,
ich erfasse in einer UF Daten, u.a. auch Adressdaten. Dabei wiederholen sich immer wieder mal PLZ und die dazugehörigen Orte.
Ist es möglich, nach Verlassen des Feldes mit der PLZ im nächsten Feld den Ort automatisch eintragen zu lassen, wenn ich die Daten irgendwo in einer Tabelle abgelegt habe? D.h. also bei geöffneter UF per SVERWEIS (oder anders?!?) Daten aus einer Tabelle zu holen?
Für Eure Tipps schon mal vielen Dank und beste Grüße
Franz
Betrifft: AW: Userform + SVERWEIS
von: Bärnd
Geschrieben am: 23.11.2003 00:30:52
Hallo Franz,
in VBA kann man mit der Funktion Evaluate() auf ALLE Funktionen des "normalen" Excel zugreifen. Mann kann sogar auf Evaluate() verzichten, wenn man den Funktionsaufruf im Klartext (ohne Variablen) in eckige Klammer setzt [ ]. Der Haken ist, daß man die englischen Bezeichner der Funktion vorher rauskriegen muß und evtl. auch die Zellbezüge in das Format Z1S1 bringen muß.
Mit dem MakroRecorder habe ich gerade dieses aufgezeichnet:
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[1],R[1]C:R[3]C[1],2,0)"
also muß es in etwa so gehen:
1. sich in das _Change oder _Exit Ereignis des PLZ-Feldes hängen
2. Evaluate(VLOOKUP....)
3. rauskriegen, ob ein Fehler zurückgegeben wurde (mit Tabellenblattfunktion IsError)
4. Wert in Orts-Feld eintragen
... Es gibt auch PLZ, die für mehre Orte gelten! ...
Ciao
der Bärnd
Betrifft: AW: Userform + SVERWEIS
von: Thomas Risi
Geschrieben am: 23.11.2003 00:39:06
Hallo Franz
Versuch's mal in etwa so ...
Option Explicit
Private Sub TextBox1_Change()
On Error Resume Next
Dim myRange As Range
Dim myPLZ As Long
Set myRange = Application.Worksheets(1).Range("A1:B5")
myPLZ = CLng(TextBox1.Text)
TextBox2.Text = Application.WorksheetFunction.VLookup(myPLZ, _
myRange, _
2, False)
End Sub
Code eingefügt mit
Syntaxhighlighter 2.5
Gruß
Thomas
Risi Thomas Softwareentwicklung
Betrifft: AW: Userform + SVERWEIS
von: K.Rola
Geschrieben am: 23.11.2003 00:47:46
Hallo,
ich würde statt einer Textbox eine zweispaltige Combobox nehmen.
Darin die vorhandenen PLZ und Orte über RowSouce zuweisen. Auf
diese Weise kannst du die MatchEntry- Eigenschaft der Combobox
nutzen, um automatisch den zugehörigen Ort auszugeben.
Gruß K.Rola
Betrifft: Danke! Und bitte um Nachhilfe
von: Franz W.
Geschrieben am: 23.11.2003 08:42:08
Hallo K.Rola,
vielen Dank, die Idee klingt gut, denke ich werde auch diesen Weg gehen. 3 Fragen hätte ich noch dazu:
1. Du sprichst MatchEntry an (ist mir noch neu): wenn ich das richtig sehe, ist das so was ähnliches wie "AutoAusfüllen" ???
2. Häufig gibt es auch die exakt selbe Straße + HsNr. (es handelt sich um Wohnobjekte): Deinem Vorschlag gemäß kann ich die Kombo dann doch auch dreispaltig aufbauen, oder? Funktioniert dann doch genau so ???
3. Lassen sich dann auch noch Werte eingeben - sowohl in der Kombobox für die Straße, als auch in den beiden nachfolgenden Feldern für PLZ und Ort - die NICHT in der Liste stehen ??? Aber das lässt sich wahrscheinlich über die Eigenschaften einstellen, oder ??? Und in diesem Fall müsste ich "MatchEntry" dann wohl auf 2 (fmMatchEntryNone) stellen oder geht das auch mit Abgleich ???
Vielen Dank schon mal für Deine Hilfe
Viele Grüße
Franz
Betrifft: AW: Danke! Und bitte um Nachhilfe
von: Franz W.
Geschrieben am: 23.11.2003 10:57:07
Hallo K.Rola,
vielen Dank für Deine Hilfe bis hierher!! Bin deinen vorgeschlagenen Weg gegangen und schon ein bisschen weiter, mein Problem ist nun ein anderes, siehe darum meinen neuen Beitrag um 10.55 Uhr.
Vielen Dank und Grüße
Franz
Betrifft: Vielen Dank Euch allen, damit komm ich weiter ot.
von: Franz W.
Geschrieben am: 23.11.2003 08:42:21