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

Fout in de code wegwerken

Status
Niet open voor verdere reacties.

ExcelAmateur

Terugkerende gebruiker
Lid geworden
25 aug 2010
Berichten
3.333
Beste helpers,

Ik was opzoek naar de eerste spatie vanaf rechts, om daar de eerste letter als hoofdletter te maken.
Dit kon ik nergens vinden maar vond wat anders en dit werkt. https://www.techonthenet.com/excel/formulas/split.php

Ik heb in de code "On Error Resume Next" gebruikt, krijg ander een foutmelding maar dit hoort natuurlijk niet.

Als hij de cel met de code gaat splitsen met "LArray = Split(LString, " ")" zijn niet alle "LArray's" gevuld.
Vandaar de fout melding, dit dus opgelost met "On Error"
Is dit op een andere manier op te lossen?

In het orginele bestand staat de tabel ook zo.
De TextBoxen worden daar ook gebruikt om nieuwe gegevens In te voeren, te wijzigen of te verwijderen.

Ik hoop dat het goed is uitgelegd.(zie het voorbeeld)
Ik zit er niet om te springen, dus volgende week is vroeg zat.

Als vast hartelijk bedankt,
 

Bijlagen

Laatst bewerkt:
Ik heb in de code "On Error Resume Next" gebruikt, krijg ander een foutmelding maar dit hoort natuurlijk niet.

Tevens lost het de fout niet op.
Het zorgt er alleen maar voor dat je geen foutmelding ziet en de code op de volgende regel verder gaat, die vervolgens ook fout zal gaan.
En zo iedere volgende regel.

Waar gaat het nu mis.
Je heb dit in de code staan:
If LArray(2) = "" Then

Daar gaat het al mis als LArray minder dan 3 elementen heeft.
Een array begint bij 0, tenzij anders aangegeven met Option Base.
Met LArray = Split(LString, " ") op bijvoorbeeld de naam Sjaan Veerman zijn er dus maar 2 elementen, op index 0 en index 1.
Als je dan LArray(2) gebruikt gaat het fout omdat je verwijst naar een index die er niet is.
Controleer dus eerst met Ubound(LArray) hoeveel elementen de array bevat.

Note:
LArray = Split(LString, " ") is hetzelfde als LArray = Split(LString)
Splitten op een spatie is de default.
 
Laatst bewerkt:
Mij lijkt dit voldoende:

Code:
Private Sub UserForm_Initialize()
    LB_01.List = [Tabel1].Value
End Sub

Private Sub LB_01_Click()
  If LB_01.ListIndex > -1 Then
    st = Split(LB_01)
    TB_01 = st(0)
    TB_02 = Trim(Mid(LB_01.Value, Len(st(0)) + 1, Len(LB_01.Value) - Len(st(0)) - Len(st(UBound(st)))))
    TB_03 = st(UBound(st))
  End If
End Sub

Alle overige code in het userform lijkt me overbodig.
Dat geldt ook voor de combobox.
 
@edmoor,
Dank je voor de uitleg.:thumb:

@snb,
Hartelijk bedankt voor de code die uitstekend werkt.:thumb:

Nogmaals hartelijk bedankt.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan