Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1676to1680
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
VLookUp Ergebnis in Textbox übertragen
26.02.2019 21:41:51
Martin
Hallo Zusammen!
Ich bin ganz neu hier, und hab wenige bis keine VBA Erfahrungen. Darum bitte ich um Nachsicht bei dummen Fragen :)
Zur Fragestellung: Ich habe eine Matrix, in Spalte A stehen Projektnummern, in Spalte B steht _ die Projektbezeichnung. Nun möchte ich in einer Userform in die Textbox1 die Projektnummer eingeben, und wenn ich auf den CommandButton klicken, und dadurch per Vlookup (also SVerweis) die entsprechende Projektbezeichnung in die Textbox2 laden. Mein versuch sah so aus:

Private Sub CommandButton1_Click()
Dim P_nummer As Long, S_index As Long
S_index = 2
P_nummer = TextBox1.Value
'       P_matrix = ThisWorkbook("matrix")
TextBox2.Value = WorksheetFunction.VLookup(P_nummer,ThisWorkbook("matrix"), S_index,  _
False)
If Err.Number > 0 Then
MsgBox "fehler"
Else: End If
End Sub

Der Code gibt den Laufzeitfehler 438 zurück - Objekt unterstützt diese Eigenschaft oder Methode nicht - und verweist auf die Zeile "TextBox2.value...."
Im Arbeitsblatt habe ich den Bereich der Daten als "Matrix" (Namensmanager) markiert.
Kann mir bitte jemand weiterhelfen? Ich vermute, dass ich mit der Bezeichnung vom Namensmanager was falsch mache, weiß aber ehrlich gesagt auch nicht, wie ich die Matrix sonst "sauber" definieren soll - wie gesagt, VBA Anfänge :)
Ich werde noch gleich versuchen, eine Beispiel-Mappe anzuhängen, damit mein Anliegen besser verständlich wird - Vorab schonmal Danke für eure Antworten!
BG
Martin

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VLookUp Ergebnis in Textbox übertragen
26.02.2019 21:50:43
Martin
OMG - was hab ich da geschrieben...
Korrektur:
Nun möchte ich in einer Userform in die Textbox1 die Projektnummer eingeben, und wenn ich auf den CommandButton klicken, und dadurch per Vlookup (also SVerweis) die entsprechende Projektbezeichnung in die Textbox2 laden.

sollte heißen:
Nun möchte ich in einer Userform in die Textbox1 die Projektnummer eingeben, und wenn ich auf den CommandButton klicke, sollte per Vlookup (also SVerweis) die entsprechende Projektbezeichnung in die Textbox2 geladen werden.
AW: VLookUp Ergebnis in Textbox übertragen
26.02.2019 22:34:05
Mullit
Hallo,
na bitte, Bsp.-Datei zahlt sich doch immer aus... am besten ganz anders ;-):
Option Explicit

Private Sub CommandButton1_Click()
   Dim objCell As Range
   With Range("Matrix")
        Set objCell = Range(.Cells(2, 1), .Cells(.Rows.Count - 1, 1)).Find( _
             What:=Val(TextBox1.Value), LookAt:=xlWhole, LookIn:=xlValues)
   End With
   If objCell Is Nothing Then
      Call MsgBox(Prompt:="Die Projektnummer ist nicht vorhanden.", Buttons:=vbExclamation)
      TextBox1.Value = vbNullString
      TextBox2.Value = vbNullString
   Else
      TextBox2.Value = objCell.Offset(0, 1).Value
      Set objCell = Nothing
   End If
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 14

Gruß, Mullit
Anzeige
AW: VLookUp Ergebnis in Textbox übertragen
26.02.2019 23:44:41
Martin
Hallo Mullit,
Erstmal vielen Dank für deine Hilfe! Werde ich gleich morgen ausprobieren! (Heute tut der Kopf schon weh)
Kannst du mir vlt. (kurz) erklären, warum du das anders löst? Soweit ich das verstanden habe, verwendest du anstatt dem SVerweis den "Suchen"-Befehl - wobei ich mir aus einigen Teilen deines Codes jetzt keinen Reim machen kann :) wie vbNullString ... uvm.
In der Zwischenzeit hab ich noch den Fehler bei meinem Code gefunden...
Habe die matrix als "range" bezeichnet, dann geht es - nach zwei tagen probieren - ein glückstreffer :)
Private Sub CommandButton1_Click()
Dim Pnummer As Long, Sindex As Long
Sindex = 2
Pnummer = TextBox1.Value
TextBox2.Value = WorksheetFunction.VLookup(Pnummer, Range("matrix"), Sindex, False)
If Err.Number > 0 Then
MsgBox "fehler"
Else: End If
End Sub

Anzeige
AW: VLookUp Ergebnis in Textbox übertragen
27.02.2019 18:22:07
Mullit
Hallo Martin,
Kannst du mir vlt. (kurz) erklären, warum du das anders löst?

dann mal ran an den Speck, bei Deinem Code:
  • Ruf Deine Form auf und klick direkt auf Deinen Laden-Button >>> Laufzeitfehler...

  • Wähl eine Projektnummer, die nicht in Deiner Liste auftaucht >>> Laufzeitfehler...

  • Trag einen beliebigen String/Text in Deine NummerSuchBox ein >>> Laufzeitfehler...

  • Erschwerdend kommt hinzu, daß WksFuncs in VBA-Code i.a.R. immer etwas träger sind, als reine VBA-Alternativen, gut bei einmaliger Verwendung wird man den Unterschied nicht merken...
    Ergo mein Vorschlag, tret Deinen Code in die Tonne und nimm meinen...;-).. Du kannst natürlich auch Dein Snippet so lange umschreiben, bis es funzt, das bleibt Dir umbenommen...;-)
    Gruß, Mullit
    Anzeige
    AW: VLookUp Ergebnis in Textbox übertragen
    28.02.2019 19:10:07
    Martin
    Hi Mullit
    Danke für deine Erklärungen!
    Die Argumente sprechen für sich - dein Code wurde übernommen (nicht nur einmal ;)
    Alles funktioniert bestens! Vielen Dank für deine Hilfe!!
    BG
    Martin

    300 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige