• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

popup textbox invulveld weergeven Vlookup

Status
Niet open voor verdere reacties.

carloschouw

Gebruiker
Lid geworden
15 jun 2015
Berichten
225
Hoi,

In een normale userform gebruik ik b.v. een textbox om een nummer in te vullen, incl een controle of het nummer ingevuld of reeds bekend is.

De code die ik hiervoor gebruik heb ik hieronder geplaatst (is in dit voorbeeld een eenvoudige variant van de complete code). Alleen nu zou ik eigenlijk dezelfde werkwijze willen alleen dan moet het nummer ingevuld worden in een aparte popup. Dus wanneer men de commandbutton 1 aanklikt, er een popup verschijnt waar je daar textbox 1 in moet vullen. Wanneer het nummer goed is (controle op kolom A:A), dan verdwijnt de popup en worden de gegevens weergegeven in de userform. Iemand een idee hoe ik dit zou kunnen doen?

Code:
Private Sub CommandButton1_Click()

 If WorksheetFunction.CountIf(Blad1.Range("A:A"), Me.TextBox1.Value) = 0 Then
 MsgBox "Onbekend nummer", vbOKOnly + vbInformation, "Nummer"
 Me.TextBox1.Value = ""
 Exit Sub
 End If
 
 If Trim(Me.TextBox1.Value) = "" Then
 Me.TextBox1.SetFocus
 MsgBox "Nummer invoeren", vbOKOnly + vbInformation, "Nummer"
 Exit Sub
 End If
 
 With Me

.TextBox2 = Application.WorksheetFunction.VLookup(CLng(Me.TextBox1), Blad1.Range("Lookup"), 2, 0)

 End With
 
 MsgBox "Gegevens opgehaald", vbOKOnly + vbInformation, "Data"
  
 End Sub
 
Code:
Private Sub CommandButton1_Click()

    lInput = InputBox("Input", "Input")

    If WorksheetFunction.CountIf(Blad1.Range("A:A"), lInput) = 0 Then
        Me.TextBox1.Value = vbNullString
    Else
        Me.TextBox1.Value = lInput
    End If

End Sub
Maar gebruiksvriendelijk vind ik het ook niet.
 
Dank Alphamax! Dit is precies hetgeen wat ik zoek!

Ik snap de reactie maar voor de complete userform is het wel een praktische werkwijze. Waar ik met jouw code niet uitkom is het retourenen wanneer er géén of een verkeerd nummer is ingevuld. Nu heb ik er een msgbox aan toegevoegd:

Code:
    lInput = InputBox("Input", "Input")

    If WorksheetFunction.CountIf(Blad1.Range("A:A"), lInput) = 0 Then
     MsgBox "Onbekend nummer", vbOKOnly + vbInformation, "nummer"
        Me.TextBox1.Value = vbNullString
     Else
        Me.TextBox1.Value = lInput
    End If

End sub

Er volgt een msgbox nadat er een verkeerd nummer is ingevuld. Dan zou de inputvenster moeten blijven staan, de inputveld leggemaakt moeten worden om een nieuw nummer in te kunnen vullen. In mijn eerder aangegeven code zie je dit staan. Kan zoiets ook met deze inputbox?
 
Ik ben er al uit.. ik heb het zo gedaan:

Code:
    lInput = InputBox("Input", "Input")

    If WorksheetFunction.CountIf(Blad1.Range("A:A"), lInput) = 0 Then
     MsgBox "Onbekend nummer", vbOKOnly + vbInformation, "nummer"
        Me.TextBox1.Value = vbNullString
Exit Sub
 End If
 
  If Trim(lInput) = "" Then
 Me.TextBox1.Value = vbNullString
 MsgBox "nummer invoeren", vbOKOnly + vbInformation, "nummer"
 Exit Sub
  
     Else
        Me.TextBox1.Value = lInput
    End If

With Me

.TextBox2 = Application.WorksheetFunction.VLookup(CLng(Me.TextBox1), Blad1.Range("Lookup"), 2, 0)

 End With
 
 MsgBox "Gegevens opgehaald", vbOKOnly + vbInformation, "Data"
  
 End Sub
 
Wist je dat er in de userform ook een listbox is? de gebruiker moet dan een bestaande waarde kiezen.
 
Jazeker alleen is dat voor dit onderdeel niet van toepassing. Het nummer jbgevoerd moet worden is iedere keer een uniek nummer
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan