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

klik op eerste regel in listbox geeft fout ID nr weer in textbox

Status
Niet open voor verdere reacties.

Andre175

Gebruiker
Lid geworden
2 feb 2018
Berichten
351
Hallo allemaal.

Wanneer ik een regel in de listbox selecteer worden de textboxen met gegevens gevuld.
Het vreemde is wanneer ik de eerste regel in de textbox selecteer, dan wordt de textbox voor het ID nummer niet goed weergegeven.
Er komt dan de "hoogste waarde plus 1" in te staan.

Bij alle overige regels gaat het wel goed.

Hoe kan dit?

Bekijk bijlage 2018 test3.xlsb

in de tabel staat in Kolom A staat het ID nummer.
TB1 geeft het ID nummer weer.

Code:
Private Sub ListBInvoer_Click()
    TB1.Value = ListBInvoer.Column(0)
    For j = 1 To 4
        Me("CB" & j).Value = ListBInvoer.Column(j)
    Next
    For j = 6 To 22
        Me("TB" & j).Value = ListBInvoer.Column(j - 1)
    Next
End Sub
 
Zet bij de eigenschappen van uw listbox ColumnHeads op False.
ColumnHeads werken alleen als je RowSource gebruikt voor het vullen van de listbox.
Jij gebruikt de list methode om de listbox te vullen
 
Dat is mij bekend, ColumnHeads stond toevallig nog op True.
Nu op False, maar zoals ik al verwachte lost het mijn probleem niet op.
 
mmmmm.... nog een vreemd geval.

de ritnummers die in de 2e comboboxstaan (CB2), en niet met een letter beginnen, geven geen ritnummer weer in de 3e combobox (CB3).
wanneer ik de ritnummers wijzig door er een Letter ervoor te zetten, komt er na het opnieuw starten van de form wordt CB3 wel gevuld met de juiste zendingnummer

En dan klopt het ID nummer wel wanneer ik de eerste regel in de listbox selecteer
 
Laatst bewerkt:
Ik heb handmatig, dus op het tabblad zelf, alle ritnummers veranderd in getallen.
Dus niet meer beginnend met een letter waardoor het een getal is geworden.

nu komt er helemaal geen resultaat meer in de 3e combobox....

Waar ligt het nu aan dat de 3e combobox alleen resutaat geeft wanneer de gegevens van de 2e combobox met een letter beginnen?
 
Waar is dit goed voor?
Code:
CB4.List = Split("Ja |Nee ", "|")
 
om een keuze tussen ja en nee te kunnen maken.
indien ja,..... dan zal er een prijs komen in kolom W.

Maar zover ben ik nog niet.
 
Maak dan maar een voorbeeldbestand die de kern van de vraag weergeeft. Leer je ook gelijk wat nodig en onnodig is.
 
Combobox 4 (CB4) heeft totaal geen invloed op het geheel.
Hier kan alleen een ja of een nee gekozen worden.

Dus wat is het verschil dat ik een bestand plaats met of zonder de 4e Combobox?

Ik probeer een userfom te creeëren en loop hierbij tegen een probleem.
De combi van 3 comboxen en meerdere textboxen lukt me gewoon.
Data opslaan gaat goed, boxen leegmaken voor nieuwe invoer gaat goed....

Nu wil ik het uitbreiden met een listbox... en loop tegen een probleem aan.
Dan kan ik dit toch gewoon plaatsen?

het probleem zit 'm denk ik in een combi van het geheel, dus een uitgekleed bestand heeft naar mijn idee geen nut om te plaatsen.
 
Een uitgekleed bestand heeft altijd nut om te maken. Dan ga je zelf begrijpen wat je zoal bijeen geraapt hebt. Hoeven de helpers niet een compleet project te doorlopen opzoek naar wat nu eigenlijk het probleem is. Je kan ook code debuggen dmv Breakpoints of het gebruik van Stop of een msgbox. Deze zou ik maar eens debuggen:
Code:
Function F_lijst(x)
 
Het stukje code heb ik met medewerking van SNB verkregen in een andere vraag die ik hier in dit forum geplaatst heb.
Daar ging alles in goed. Nu blijkt achteraf dat het toch fout gaat omdat de gegevens voor de comboboxen een andere "opmaak" hebben.

Bekijk bijlage __keuze123 SNB.xlsb
 
Laatst bewerkt:
Als ik het goed begrijp.......

Als er dus ritnummers ingevuld worden die alleen bestaan uit cijfers dan gaat het mis omdat sn(j, jj + y) dan een "waarde" wordt ipv van een "tekst"?


Code:
Function F_lijst(x)
    For j = 1 To UBound(sn)
        For jj = 1 To x
            If sn(j, jj + y) <> Me("CB" & jj).Value Then Exit For
        Next
        If jj = x + 1 And InStr(c01 & "|", "|" & [COLOR="#FF0000"]sn(j, jj + y)[/COLOR] & "|") = 0 Then c01 = c01 & "|" & sn(j, jj + y)
    Next
    F_lijst = Split(Mid(c01, 2), "|")
End Function
 
Als je werkbladen gebruikt met een verschillende opbouw (wel/geen kolom met ID als kolomkop), moet je niet verbaasd staan dat een macro in het ene werkblad iets anders doet dan in een ander werkblad.

Omdat je niet aangeeft welke andere uitkomst je verwacht is je vraag niet duidelijk.
Een nieuwe draad starten met dezelfde vraag is geen oplossing.
 
Dat de code wijzigt bij gebruik van wel of geen ID-kolom is mij duidelijk.

De vraag die ik in deze draad gestart ben, ging eigenlijk onbedoeld over in een andere vraag. Vandaar dat ik een nieuwe vraag heb geplaatst.

Uit jouw reactie maak ik op dat die vraag niet geheel duidelijk is omschreven, ik zal proberen deze te verduidelijken.
 
Doe dat dan in deze draad, dan raak ik hem niet kwijt.
 
het probleem waar ik nu hoofdzakelijk tegen aan loop is als volgt:

CB1 gevuld met tekst uit kolom B
CB2 gevuld met tekst en getallen uit Kolom C
CB3 gevuld met tekst en getallen uit Kolom D

Zolang de comboboxen met een tekst gevuld worden, gaat alles goed.
Echter zodra de 2e combobox met een getal gevuld wordt, komt er niets in de 3e combobox.

JKPieterse gaf als oplossing aan om de getallen als tekst weg te zetten door er een ' voor het getal te zetten.
Het is idd een oplossing die ik kan toepassen.

Echter begrijp ik de code niet waarom het nu mis gaat met getallen.
Maw.... een oplossing is er wel, oorzaak van het probleem is mij onbekend.


Bekijk bijlage __keuze123 SNB.xlsb
 
Omdat getracht wordt appels met peren te vergelijken. De waarde die in het dictionary object zit is 111, maar een tekstvak geeft ALTIJD een tekstwaarde en zoekt dus op "111", wat niet hetzelfde is als 111.
 
Nu is het me duidelijk.

Ik ga de code voor het wegschrijven van de data zodanig aanpassen dat het als tekst wordt weg gezet.
Dat lijkt me niet zo'n groot probleem, en als het me niet lukt... zal het antwoordt vast wel te vinden zijn in 1 van de vele vragen hier.

:thumb:
 
Formatteer de betreffende kolom als tekst, dat zal al veel schelen (wordt die ' ook overbodig, maar je moet wel even bestaande waarden opnieuwe invoeren met F2, enter).
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan