userform en tekstbox

Status
Niet open voor verdere reacties.

kroesjhoar

Gebruiker
Lid geworden
4 okt 2011
Berichten
37
goedemorgen.
onderstaande code gebruik ik om gegevens in te voegen
Code:
Private Sub CommandButton1_Click()
Set nr = Blad3.Range("C1:C" & Rows.Count).Find(TextBox1.Value, , xlValues, xlWhole)

If Not nr Is Nothing Then
    With Blad3
        .Range("K" & nr.Row).Value = TextBox2.Value
        .Range("L" & nr.Row).Value = ComboBox1.Value
        .Columns("L").AutoFit
  End With
    End If
    
End Sub

Private Sub CommandButton2_Click()
UserForm1.Hide

Sheets("Voorblad").Select

End Sub

Private Sub TextBox1_Change()
Set nr = Blad3.Range("C1:C" & Rows.Count).Find(TextBox1.Value, , xlValues, xlWhole)
If Not nr Is Nothing Then
    TextBox2.Value = Blad3.Range("K" & nr.Row).Value
Else
    TextBox2.Value = ""
End If

End Sub
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Blad4!A2:A" & Blad4.Range("A" & Rows.Count).End(xlUp).Row
End Sub
Ik wil nu nog een optie invoegen dat als in textbox1 een waarde wordt ingevuld die niet in het bestand voorkomt een popup venster krijgt met de tekst bestaat niet.
Ik heb deze code gemaakt, maar zodra ik hem laat lopen, doet hij het niet, geeft hij mij een blok.
Code:
   If Blad3.Range("C") Is Not TextBox1.Value Then
MsgBox "Ordernummer bestaat niet!" & vbNewLine & "Voer een ander ordernummer in.", vbExclamation, "Ordernummer betaat niet."
End If
ik hoop dat iemand mij snel kan helpen
 
Visual Basic is iets anders dan Visual Basic for Applications. Verplaatst naar juiste sectie.
 
Mogelijke oplossing.

Onderstaande code zal niet werken want Range("C").value zal een error veroorzaken.

Code:
If [COLOR="red"]Blad3.Range("C")[/COLOR] Is Not TextBox1.Value Then
MsgBox "Ordernummer bestaat niet!" & vbNewLine & "Voer een ander ordernummer in.", vbExclamation, "Ordernummer betaat niet."
End If

Wellicht is hetgene waarin je geintereseerd als volgt:

Code:
Set nr = ws.Range("C1:C" & Rows.Count).Find(TextBox1.Value, , xlValues, xlWhole)
If Blad3.Range("C" & nr.row) Is Not TextBox1.Value Then
MsgBox "Ordernummer bestaat niet!" & vbNewLine & _ 
           "Voer een ander ordernummer in.", vbExclamation, _
           "Ordernummer betaat niet."
End If

Als je bovenstaande code echter plaatst in de textbox_Change event dan zal het na elke toetsaanslag een msgbox geven (Lijkt mij erg irritant...). Wellicht is het een oplossing om de code te plaatsen in command_button1 of de textbox_exit event. Ik kan echter geen uitspraak doen wat het beste werkt voor jouw'n programma.

(Ik denk dat het dan als volgt het beste werkt, maar dat moet je zelf beoordelen)
Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Set nr = Blad3.Range("C1:C" & Rows.Count).Find(TextBox1.Value, , xlValues, xlWhole)

If Blad3.Range("C" & nr.row) Is Not TextBox1.Value Then
MsgBox "Ordernummer bestaat niet!" & vbNewLine & _ 
           "Voer een ander ordernummer in.", vbExclamation, _
           "Ordernummer betaat niet."
Me.TextBox1.SetFocus  'Weet niet zeker of dit werkt, zou cursorselectie op textbox1 moeten zetten
End Sub

Hopelijk kun je hier wat mee!
Met vriendelijke groet,

Tilly
 
Laatst bewerkt:
Bedankt voor de reactie, ik had echter zelf al een oplossing gevonden!!, maar toch bedankt
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan