• 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.

Probleem met userform

Status
Niet open voor verdere reacties.

Stephan27

Gebruiker
Lid geworden
31 dec 2015
Berichten
8
Goedemiddag,

Ik ben al een tijdje aan het prutsen met een soort van database.
Nou was mijn idee om nieuwe onderdelen in te voeren via een userform.

Na verscheidende fora en Youtube filmpjes gezien te hebben, heb ik wel een idee gekregen van hoe het 1 en ander werkt.
Enkel heb ik ergens nog een fout zitten want hij doet het nog niet.

Ik probeer het bestand erbij te plaatsen, maar kennelijk kan ik niet meer dan 100Kb uploaden.

Hier is wel een link na het bestand
http://we.tl/XRBoPlEfyG

Heb hem geupload met Wetransfer dus als goed is moet ie te zien zijn.

Alvast vriendelijk bedankt
 
Zo op het eerste gezicht heb je er twee problemen in.
Dit: Private Sub UserForm_Nieuw_Initialize() moet dit Private Sub UserForm_Initialize() zijn.

En dit: ComboBox_Condite.Clear moet ComboBox_Conditie.Clear zijn.
 
Hee Dank jullie wel voor de snelle reactie,

Edmoor: ik heb die aanpassingen gedaan en kan nu inderdaad dingen invullen, alleen als ik ze wil invullen geeft ie een fout.

Cobbe: Zo werkt het ook, ik wou alleen graag me eigen layout houden. Weet niet of dat kan?

Gr. Stephan
 
Dat komt door een aantal zaken.
- Je gebruik combobox namen die niet bestaan, bv: ComBox_Merk in plaats van ComboBox_Merk en zo meer
- Je gebruikt een niet gevulde variabele met de naam emptyRow
- Het bepalen van de eerste lege regel is niet goed, zoals Cobbe ook al opmerkte.

Daarnaast, als je zegt een fout te krijgen is het wel zo handig deze er ook bij te vermelden.
Waarom maar zo weinigen dat doen is mij nog steeds een raadsel.

Voor de rest, een fijne jaarwisseling gewenst.
Ik zal hier volgend jaar weer terug zijn :P
 
Laatst bewerkt:
Hoi, Cobbe

Zo is het ongeveer wat ik wil;)

Hartelijke dank. Zal er mee verder gaan

Gr. Stephan
 
Bij deze ook een poging. Ik heb even de laatste tab weggelaten omdat het bestand anders te groot is.
 

Bijlagen

Geweldig, dit is zoals ik het wou hebben!

Hartelijk bedankt voor de hulp.:thumb:
 
@gast0660

Ik vind het bestandje er goed uitzien.
Er zit echter nog wel een probleem in.

Als ik een selectie maak van bv 1975 dan verschijnt er 1 onderdeel (wiel oud) in het onderste scherm.
Als ik dit onderdeel wil wijzigen dan wijzigt hij echter niet dit onderdeel maar het eerste onderdeel in de lijst (Bout 6x35).

Ik kan niet vinden waar ik dit zou moeten corrigeren?
 
Ik kan niet vinden waar ik dit zou moeten corrigeren?

In de bijlage heb ik twee msgboxen gezet. klik in eerste instantie op een regel in de listbox. Je zal zien dat het juiste rijnummer getoond wordt. Als je echter gaat fileren dan wordt de listbox opnieuw gevuld en is elke relatie met de onderliggende database weg. Klik na filtering op een regel en je zal zien dat je een verkeerde waarde krijgt. Mijn kennis van listboxen is nog te beperkt om dit snel aan te passen dus mogelijk dat gast0660 dit even wil doen.
 

Bijlagen

De opmerking van VenA lijkt mij correct, na filteren is de directe relatie tussen de positie in de Listbox en de positie op de worksheet weg.

Code:
Private Sub ListBox1_Click()
Dim say, a As Integer

For a = 0 To 10 'If listbox click ,fill the textboxes
Controls("textbox" & a + 1) = ListBox1.column(a)
Next
[COLOR="#FF0000"]say = ListBox1.ListIndex + 2
Sheets("Data").Range("A" & say & ":K" & say).Select[/COLOR]

TextBox15 = ListBox1.ListIndex + 1
End Sub

De waarde van variabele "say" zal op een andere manier moeten bepaald worden
 
Ik begrijp het probleem nu maar mijn kennis van VBA is ook niet zo dat ik dit kan aanpassen
 
Maak even een nieuw draadje aan. Anders lopen we te rommelen in het draadje van Stephan27. (staat nog wel open en heeft ook niet aangegeven welke oplossing gebruikt is) Maar anders dwalen we een beetje af.
 
@VenA, U kunt simpelweg de "Attendeer moderator" knop gebruiken als u denkt dat er een nieuw draadje gemaakt moet worden. Dat kunnen we namelijk erg gemakkelijk (met historie) regelen, is wat sneller dan als de "inbreker" het zelf meot doen. :)


Nu wat betreft dit draadje, ik vind de onderliggende fout wel erg gevaarlijk.
Kan me voorstellen dat het in dit geval meer loont om het in dit draadje af te handelen zodat ook Stephan27 deze fout uit zijn versie kan halen.

Mochten jullie het er niet mee eens zijn, laat even wat weten (liefst via mail / melding, scheelt berichten) en dan kijken we op dat moment even verder. (we willen immers allen het beste voor het forum :))

Allemaal nog de beste wensen en vooral een fijn weekend ! :thumb:
 
Je zou het weer kunnen opzoeken.
Code:
Private Sub ListBox1_Click()
Dim say, a As Integer, i As Long
For a = 0 To 10 'If listbox click ,fill the textboxes
   Controls("textbox" & a + 1) = ListBox1.Column(a)
Next
sn = Sheets("data").Cells(1).CurrentRegion
With ListBox1
    For i = 2 To UBound(sn)
      If Join(Array(sn(i, 1), sn(i, 2), sn(i, 3), sn(i, 4), sn(i, 5), sn(i, 6), sn(i, 7), sn(i, 8), sn(i, 9), sn(i, 10)), "|") _ 
= Join(Array(.Column(0), .Column(1), .Column(2), .Column(3), .Column(4), .Column(5), .Column(6), .Column(7), .Column(8), .Column(9)), "|") Then
         say = i
         Exit For
       End If
    Next i
End With
'say = ListBox1.ListIndex + 2
MsgBox say
   Sheets("Data").Range("A" & say & ":K" & say).Select
   TextBox15 = ListBox1.ListIndex + 1
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan