Zoals in het zoekdatabase is te lezen ben ik bezig met een GUI formulier.
Hiervoor had ik al een vraag gesteld omtrent het centreren, maar ik vind dit niets.
Ik heb nu besloten het formulier te splitsen in 2 losse formulieren. Ik ben hiermee tot de conclusie gekomen dat ik dit netter vind.
Maar nu toch even een vraag voor de pro kenners.
Zodra ik een zoekopdracht heb ingevoerd in het eerste formulier worden de textboxen van het tweede formulier gevuld nadat het eerste formulier verborgen wordt via hide en het tweede formulier is geopend.
Zodra het 2e formulier is geopend dan zie je netjes alle gegevens in de textboxen staan. Echter als ik nu veranderingen maak in de textboxen en deze wil doorvoeren met:
dan krijg ik een foutmelding in deze code. Het blijkt verkeerd te gaan in het gedeelte Cells(It,1)
De It kan kennelijk niet worden gevonden als deze in het eerste formulier is genoemd en verborgen is.
Nu heb ik wel een oplossing bedacht en dat is de eerste code herhalen met een aanpassing verwijzend naar Userform1.ComboBox1.Value.
Hoewel deze oplossing wel werkt, vraag ik mij toch af of ik niet iets verkeerd heb gedaan, want ik heb het idee dat in het tweede formulier de It normaal gesproken helemaal niet opnieuw en aangepast hoeft te worden benoemd.
De It is als Long gedeclareerd.
Kan iemand mij dat uitleggen?
Hiervoor had ik al een vraag gesteld omtrent het centreren, maar ik vind dit niets.
Ik heb nu besloten het formulier te splitsen in 2 losse formulieren. Ik ben hiermee tot de conclusie gekomen dat ik dit netter vind.
Maar nu toch even een vraag voor de pro kenners.
Zodra ik een zoekopdracht heb ingevoerd in het eerste formulier worden de textboxen van het tweede formulier gevuld nadat het eerste formulier verborgen wordt via hide en het tweede formulier is geopend.
Code:
Me.Hide
Frm_Product.Show
On Error GoTo Product
If ComboBox1.Value = vbNullString Or TextBox1.Text = vbNullString Or TextBox1.Text = Tekst_A Then GoTo Invoer
If ComboBox1.Value = Tekst_B Then It = WorksheetFunction.Match(TextBox1.Text, Sheets("Materiaallijst").Columns(3), 0)
If ComboBox1.Value = Tekst_C Then It = WorksheetFunction.Match(TextBox1.Text, Sheets("Materiaallijst").Columns(4), 0)
If ComboBox1.Value = Tekst_D Then It = WorksheetFunction.Match(TextBox1.Text, Sheets("Materiaallijst").Columns(5), 0)
If ComboBox1.Value = Tekst_E Then It = WorksheetFunction.Match(TextBox1.Text, Sheets("Materiaallijst").Columns(6), 0)
Kolnr = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
Call Gegevens 'Gegevens uit database ophalen
Application.ActiveWindow.ScrollRow = It
Exit Sub
Zodra het 2e formulier is geopend dan zie je netjes alle gegevens in de textboxen staan. Echter als ik nu veranderingen maak in de textboxen en deze wil doorvoeren met:
Code:
With Sheets("Materiaallijst")
Cells(It, 1).Resize(, 8) = Array(TextBox3, TextBox4, TextBox5, TextBox6, TextBox7, TextBox8, CDbl(TextBox9), CDbl(TextBox10 / 100))
End With
dan krijg ik een foutmelding in deze code. Het blijkt verkeerd te gaan in het gedeelte Cells(It,1)
De It kan kennelijk niet worden gevonden als deze in het eerste formulier is genoemd en verborgen is.
Nu heb ik wel een oplossing bedacht en dat is de eerste code herhalen met een aanpassing verwijzend naar Userform1.ComboBox1.Value.
Code:
If UserForm1.ComboBox1.Value = Tekst_B Then It = WorksheetFunction.Match(UserForm1.TextBox1.Text, Sheets("Materiaallijst").Columns(3), 0)
If UserForm1.ComboBox1.Value = Tekst_C Then It = WorksheetFunction.Match(UserForm1.TextBox1.Text, Sheets("Materiaallijst").Columns(4), 0)
If UserForm1.ComboBox1.Value = Tekst_D Then It = WorksheetFunction.Match(UserForm1.TextBox1.Text, Sheets("Materiaallijst").Columns(5), 0)
If UserForm1.ComboBox1.Value = Tekst_E Then It = WorksheetFunction.Match(UserForm1.TextBox1.Text, Sheets("Materiaallijst").Columns(6), 0)
Hoewel deze oplossing wel werkt, vraag ik mij toch af of ik niet iets verkeerd heb gedaan, want ik heb het idee dat in het tweede formulier de It normaal gesproken helemaal niet opnieuw en aangepast hoeft te worden benoemd.
De It is als Long gedeclareerd.
Kan iemand mij dat uitleggen?
Laatst bewerkt: