Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

VLookUp Ergebnis in Textbox übertragen


Betrifft: VLookUp Ergebnis in Textbox übertragen von: Martin Sperl
Geschrieben am: 26.02.2019 21:41:51

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

  

Betrifft: AW: VLookUp Ergebnis in Textbox übertragen von: Martin Sperl
Geschrieben am: 26.02.2019 21:50:43

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.


  

Betrifft: AW: VLookUp Ergebnis in Textbox übertragen von: Martin
Geschrieben am: 26.02.2019 22:11:18

Hier noch eine Beispieldatei:

https://www.herber.de/bbs/user/127955.xlsm


  

Betrifft: AW: VLookUp Ergebnis in Textbox übertragen von: Mullit
Geschrieben am: 26.02.2019 22:34:05

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


  

Betrifft: AW: VLookUp Ergebnis in Textbox übertragen von: Martin
Geschrieben am: 26.02.2019 23:44:41

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



  

Betrifft: AW: VLookUp Ergebnis in Textbox übertragen von: Mullit
Geschrieben am: 27.02.2019 18:22:07

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


      

    Betrifft: AW: VLookUp Ergebnis in Textbox übertragen von: Martin
    Geschrieben am: 28.02.2019 19:10:07

    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


    Beiträge aus dem Excel-Forum zum Thema "VLookUp Ergebnis in Textbox übertragen"